PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Zoom sur un fichier PDF affiché sur une page PHP » 24-07-2012 18:15:03

linkman
Réponses : 1

Bonjour à tous,

Je vous écris car j'ai un gros soucis avec une page web. J'aimerais afficher un fichier PDF sur celle-ci. J'utilise ce code:
<object data="Design/records/rec_age_fille.pdf#zoom=300" type="text/html" codetype="application/pdf" style="height:842px; width:595px; margin-left:40px;"></object>

Effectivement, le fichier s'affiche mais pas à 300% comme je l'aimerais. Il doit être à 50% et c'est illisible. Est-ce que quelqu'un aurait une idée? Je précise que je dev sur Mac et avec Safari comme navigateur.

Merci d'avance,
Linkman

#2 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

D'accord merci du conseil. Il est vrai que je met toujours des SELECT * alors que je devrais juste spécifier les cellules dont j'ai besoin.

Je vais voir pour optimiser le code.

#3 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

OMG, j'ai enfin trouvé la solution:


$select = 'SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) ORDER BY DateDebut ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$nb=mysql_num_rows($result);
$meeting = array() ;
while ($data = mysql_fetch_array($result) ) {
  $liste[] = substr($data["DateDebut"], 8,2);
  $meeting[] = $data["NomMeeting"];
  $links = array() ;
  $i=0;
  foreach ( $liste as $value ) {
    $sql="SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=".$liste[$i]."";
    $req=mysql_query($sql);
    $result2 = @mysql_fetch_array($req);
    $links[$value] = '<a class="imag" href=agenda.php?var='.$value.'>'.$value.' <span style="background-color:#FFF;width: 350px;">'.$result2["NomMeeting"].'<br>Lieu: '.$result2["Lieu"].'</span></a>';
    $i = $i+1; 
  }
}

print_r($links);
Calendrier($m, $a, $links);
 

Enfin !!!!!
Merci beaucoup à tous, cela fait plaisir d'avoir de l'aide quand on est vraiment perdu smile

#4 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Oups le vrai code est celui là me suis planté de code:


$select = 'SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) ORDER BY DateDebut ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$nb=mysql_num_rows($result);
$meeting = array() ;
while ($data = mysql_fetch_array($result) ) {
  unset($liste);
  $liste[] = $date_explosee[2];
  $meeting[] = $data["NomMeeting"];
  $links = array() ;
  $i=0;
  foreach ( $liste as $value ) {
    $sql="SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=".$liste[$i]."";
    $req=mysql_query($sql);
    $result2 = @mysql_fetch_array($req);
    $links[$value] = '<a class="imag" href=agenda.php?var='.$value.'>'.$value.' <span style="background-color:#FFF;width: 350px;">'.$result2["NomMeeting"].'<br>Lieu: '.$result2["Lieu"].'</span></a>';
    $i = $i+1; 
  }
}

print_r($links);
Calendrier($m, $a, $links);
 

#5 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Voici ou j'en suis:


$select = 'SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) ORDER BY DateDebut ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$nb=mysql_num_rows($result);
$meeting = array() ;
while ($data = mysql_fetch_array($result) ) {
  $date = $data["DateDebut"];
  $date_explosee = explode("-", $date);
  if($date_explosee[1]==date("m")){
    unset($liste);
    $liste[] = $date_explosee[2];
    $meeting[] = $data["NomMeeting"];
    $links = array() ;
    $i=0;
    foreach ( $liste as $value ) {
      $sql="SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=".$liste[$i]."";
      $req=mysql_query($sql);
      $result2 = @mysql_fetch_array($req);
      $links[$value] = '<a class="imag" href=agenda.php?var='.$value.'>'.$value.' <span style="background-color:#FFF;width: 350px;">'.$result2["NomMeeting"].'<br>Lieu: '.$result2["Lieu"].'</span></a>';
      $i = $i+1; 
    }
  }
}
print_r($links);
Calendrier($m, $a, $links);

 

Ma requête dans le foreach est correct, je passe 3 fois dans celui-ci et j'obtiens ceci :

SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=13
SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=17
SELECT * FROM resultat WHERE MONTH(DateDebut)=MONTH(NOW()) AND DAY(DateDebut)=25

Lorsque les dates s'affichent sur mon calendrier je ne vois toujours que la dernière (25 mai 2012).

#6 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Merci pour avoir réinventé le code. Le problème c'est que si je vide mon $liste je n'ai qu'une date et c'est la dernière dans le mois qui apparait.

Actuellement, les dates sont bien affiché dans mon calendrier, mais les données liées à la date qui s'affichent corresponde toujours à la dernière date traitée du mois.

#7 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Ok, pourtant dans mon while il passe 3x.

Est-ce possible que mon foreach se cumule au fur et a mesure d'ou mes nombreux résultat?

#8 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

Merci beaucoup, c'est la première fois que j'utilise MONTH().

J'ai effectivement changé dans mon code mais suis vraiment désolé mais je ne comprend toujours pas pourquoi mon foreach passe plusieurs fois (trop) ???

merci

#9 Re : Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

J'ai changé les substr par des explode mais toujours le même résultat sad


$select = 'SELECT * FROM resultat WHERE MONTH(DateDebut)="05" ORDER BY DateDebut ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$nb=mysql_num_rows($result);
$links = array() ;
while ($data = mysql_fetch_array($result) ) {
    $date = $data["DateDebut"];
    $date_explosee = explode("-", $date);
    if($date_explosee[1]==date("m")){
        $liste[] = $date_explosee[2];
        $links = array() ;
        foreach ( $liste as $value ) {
            $links[$value] = '<a class="imag" href=agenda.php?var='.$value.'>'.$value.' <span style="background-color:#FFF;width: 350px;">'.$data["NomMeeting"].'<br>Lieu: '.$data["Lieu"].'</span></a>';
            echo $value;
            }
        }
    }

#10 Forum Général PHP » Problème boucle foreach » 08-05-2012 19:43:37

linkman
Réponses : 19

Hello tout le monde,
J'ai un soucis et cela fait 2 jours que je recherche des solutions mais rien y fait.

Voici mon soucis :

$select = 'SELECT * FROM resultat WHERE MONTH(DateDebut)="05" ORDER BY DateDebut ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$nb=mysql_num_rows($result);
$links = array() ;
while ($data = mysql_fetch_array($result) ) {
if(substr($data["DateDebut"], 5,2)==date("m")){
$liste[] = substr($data["DateDebut"], 8,2);
$links = array() ;


foreach ( $liste as $value ) {
$links[$value] = '<a class="imag" href=agenda.php?var='.$value.'>'.$value.' <span style="background-color:#FFF;width: 350px;">'.$data["NomMeeting"].'<br>Lieu: '.$data["Lieu"].'</span></a>';
echo $value;
}


}}

En effet après avoir récupérer mes 3 date dans la base de données, je fais un foreach afin de les afficher dans mon calendrier. Cepedant, je n'arrive pas à un résultat concluant. Dans mon écho $value, j'obtiens : 13 13 17 13 17 25.

Alors que normalement je devrais avoir 13, 17, 25 sad

Est-ce quelqu'un aurait une idée?

Merci et bonne soirée,
Linkman

#11 Re : Forum Général PHP » Problème imagecreatefrom avec le format BMP » 28-03-2010 18:23:54

Aucune idée, les images n'ont pas été faites par moi. Tous ce que je sais c'est :

Espace colorimétrique : RGB
Canal Alpha : Non
Profondeur de couleur : 32
Nombre de trames : 1

#12 Forum Général PHP » Problème imagecreatefrom avec le format BMP » 28-03-2010 18:23:54

linkman
Réponses : 3

Bonjour à tous,

Cela fait plusieurs heures que je cherche une solution à mon problème et je n'arrive pas à le résoudre. Je dois afficher une image que l'on m'a fourni en BMP (je ne peux pas la convertir sous photoshop car je n'ai pas les droits pour le faire  sad ). J'ai vu sur plusieurs site que la fonction Imagecreatefrombmp ne fonctionnait pas en PHP. J'ai trouvé un petit tuto mais il ne fonctionne pas sad.

Sur la page ou j'affiche mon image:
[c]
<?php if($result["Image"]!=NULL){?><img src="logo_petit.php?logo=<?php echo $result["Image"];?>" alt="image"/>
[/c]
Dans $result["Image"]; se trouve : ma_maison.bmp

La page logo_petit.php:


$logo=$_GET["logo"];
    $path = "../trait/logos/" . $logo;
  $extension = substr( $logo, -3 );
  $extension = strtolower( $extension );
        if($extension="bmp")
  {
    function imagecreatefrombmp($dir) {
    $bmp = "";
    if (file_exists($dir)) {
      $file = fopen($dir,"r");
      while(!feof($file)) $bmp .= fgets($file,filesize($dir));
      if (substr($bmp,0,2) == "BM") {
        // Lecture du header
        $header = unpack("vtype/Vlength/v2reserved/Vbegin/Vsize/Vwidth/Vheight/vplanes/vbits/Vcompression/Vimagesize/Vxres/Vyres/Vncolor/Vimportant", $bmp);
        extract($header);
        // Lecture de l'image
        $im = imagecreatetruecolor($width,$height);
        $i = 0;
        $diff = floor(($imagesize - ($width*$height*($bits/8)))/$height);
        for($y=$height-1;$y>=0;$y--) {
          for($x=0;$x<$width;$x++) {
            if ($bits == 32) {
              $b = ord(substr($bmp,$begin+$i,1));
              $v = ord(substr($bmp,$begin+$i+1,1));
              $r = ord(substr($bmp,$begin+$i+2,1));
              $i += 4;
            } else if ($bits == 24) {
              $b = ord(substr($bmp,$begin+$i,1));
              $v = ord(substr($bmp,$begin+$i+1,1));
              $r = ord(substr($bmp,$begin+$i+2,1));
              $i += 3;
            } else if ($bits == 16) {
              $tot1 = decbin(ord(substr($bmp,$begin+$i,1)));
              while(strlen($tot1)<8) $tot1 = "0".$tot1;
              $tot2 = decbin(ord(substr($bmp,$begin+$i+1,1)));
              while(strlen($tot2)<8) $tot2 = "0".$tot2;
              $tot = $tot2.$tot1;
              $r = bindec(substr($tot,1,5))*8;
              $v = bindec(substr($tot,6,5))*8;
              $b = bindec(substr($tot,11,5))*8;
              $i += 2;
            }
            $col = imagecolorexact($im,$r,$v,$b);
            if ($col == -1) $col = imagecolorallocate($im,$r,$v,$b);
            imagesetpixel($im,$x,$y,$col);
          }
          $i += $diff;
        }
        // retourne l'image
        return $im;
        imagedestroy($im);
      } else return false;
    } else return false;
    }
    function imagebmp($im,$dir="") {
      $pix = "";
      for($y=imagesy($im)-1;$y>=0;$y--) {
        for($x=0;$x<imagesx($im);$x++) {
          $rgb = ImageColorAt($im, $x, $y);
          $r = ($rgb >> 16) & 0xFF;
          $g = ($rgb >> 8) & 0xFF;
          $b = $rgb & 0xFF;
          $pix .= pack("C3",$b,$g,$r);
        }
      }
      $header = pack("Vv2VVVVvvVVVVVV",strlen($pix)+54,0,0,54,40,imagesx($im),imagesy($im),1,24,0,strlen($pix),0,0,0,0);
      if ($dir != "") {
        $inF = fopen($dir,"w");
        fwrite($inF,"BM".$header.$pix);
        fclose($inF);
      } else echo "BM".$header.$pix;
    }
       
    header('Content-type: image/bmp');
    $x = 55; //largeur de mon image en PIXELS uniquement !
    $y = 25; //hauteur de mon image en PIXELS uniquement !
    $image = imagecreatefrombmp($path);
    $size = getimagesize($path);
    $img_mini = imagecreatetruecolor ($x, $y);
    imagecopyresampled ($img_mini,$image,0,0,0,0,$x,$y,$size[0],$size[1]);
    imagebmp($img_mini);
    imagedestroy($img_mini);
  }
 

J'espère que vous pourrez m'aider car je suis tout perdu sad

Pied de page des forums

Propulsé par FluxBB