[PHP] Html avec PHP

Résolu
Ca fait 3 jours que je prend la tete dessus et sans ca je sui completement bloqué...

Donc:

La 1er partie, c'est la connection et la requete:
<?php
//connection a la base
include("include/connection.php3");
$id= $_GET['lot'];
$sql ="SELECT * FROM appartement where id='".$id."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($data=mysql_fetch_array($req)


La 2eme partie redimentionne des images:
function redimage($img_src,$dst_w,$dst_h)
{
   // Lit les dimensions de l'image
   $size = GetImageSize($img_src); 
   $src_w = $size[0]; $src_h = $size[1];
   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // Affiche les dimensions optimales
   echo "WIDTH=".$dst_w. "HEIGHT=".$dst_h;
}
?>

<IMG SRC="upload/P_228.jpg" <? redimage("upload/P_228.jpg",100,100)?>>


Ces 2 code fonctionnes tres bien mais lorsque j'essais de les combiner c'est une catastrophe...

<IMG SRC="<? upload/'.$data['photo1'].' ?>" <? redimage('upload/'.$data['photo1'],100,100) ?>>


J'ai essaié toute un tas de choses et rien n'y fait...
Configuration: Windows XP
Firefox 2.0.0.6

9 réponses

  1. Bravo a toi c'est ca!!!

    Victoir au bout de 3 jours de combat acharné!!

    Merci beaucoup

    ;)

    Le code final est le suivant:

    <?php
    //connection a la base
    include("include/connection.php3"); 
    $id= $_GET['lot'];
    $sql ="SELECT * FROM appartement where id='".$id."'"; 
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    while ($data=mysql_fetch_array($req))
    
    $monimage= "upload/".$data['photo1'];
    
    function redimage($img_src,$dst_w,$dst_h) 
    {
       // Lit les dimensions de l'image
       $size = GetImageSize($img_src);  
       $src_w = $size[0]; $src_h = $size[1];
       // Teste les dimensions tenant dans la zone
       $test_h = round(($dst_w / $src_w) * $src_h);
       $test_w = round(($dst_h / $src_h) * $src_w);
       // Si Height final non précisé (0)
       if(!$dst_h) $dst_h = $test_h;
       // Sinon si Width final non précisé (0)
       elseif(!$dst_w) $dst_w = $test_w;
       // Sinon teste quel redimensionnement tient dans la zone
       elseif($test_h>$dst_h) $dst_w = $test_w;
       else $dst_h = $test_h;
    
       // Affiche les dimensions optimales
       echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
    }
    ?>  
    <IMG SRC="<? print $monimage?>" <? redimage($monimage,100,100)?>>


    Et il marche!!!!

    Az
    1. Comme quoi faut pas désespérer ^^

      Mais qu'appelles-tu "image screen" au juste ?
      si c'est le SRC c'est source pas screen

      donc essaye ça : <IMG SRC="<? print $monimage?>" <? redimage($monimage,100,100)?>>
      1. Bon y a du nouveau...

        <?php
        //connection a la base
        include("include/connection.php3"); 
        $id= $_GET['lot'];
        $sql ="SELECT * FROM appartement where id='".$id."'"; 
        // on envoie la requête
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
        while ($data=mysql_fetch_array($req))
        
        $monimage= "upload/".$data['photo1'];
        
        function redimage($img_src,$dst_w,$dst_h) 
        {
           // Lit les dimensions de l'image
           $size = GetImageSize($img_src);  
           $src_w = $size[0]; $src_h = $size[1];
           // Teste les dimensions tenant dans la zone
           $test_h = round(($dst_w / $src_w) * $src_h);
           $test_w = round(($dst_h / $src_h) * $src_w);
           // Si Height final non précisé (0)
           if(!$dst_h) $dst_h = $test_h;
           // Sinon si Width final non précisé (0)
           elseif(!$dst_w) $dst_w = $test_w;
           // Sinon teste quel redimensionnement tient dans la zone
           elseif($test_h>$dst_h) $dst_w = $test_w;
           else $dst_h = $test_h;
        
           // Affiche les dimensions optimales
           echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
        }
        ?>  
        <IMG SRC="<? $monimage?>" <? redimage($monimage,100,100)?>> 


        Avec ce code redimage fonctionne, mais pas image screen...

        On y est presque!!

        Az
        1. Il me dit qu'il y a une erreur sur cette ligne:

           print 'width="'.$dst_w.'" height="'.$dst_h.'"
          (manque un ' )

          J'ai donc essaié:
           print 'width="'.$dst_w.'" height="'.$dst_h.'"''
          (toujours une erreur)

          j'ai donc essaié ca:

           print width="'.$dst_w.'" height="'.$dst_h.'"
          (encore une erreur)

          Et puis j'ai fais ca:
          print "WIDTH=".$dst_w. "HEIGHT=".$dst_h;


          Ca marche mais on revient au point de départ.

          Soit:

          Warning: getimagesize(upload/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\pragma\result.php on line 115

          Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 118

          Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 119
          WIDTH=100HEIGHT=0

          J'ai effacé ca:
          <?php
          print '<IMG SRC="./upload/'.$data['photo1'].'" '.redimage('upload/'.$data['photo1'].'',100,100).'>';
          ?>

          Pour tester ma variable $data['photo1'] et j'ai donc remplacé par ca:
          echo '<img src="upload/'.$data['photo1'].'" width="336" height="200" style=""/>';


          Aprés la fonction "redimage" et la ca me dit qu'il y a une erreur sur cette ligne:
          function redimage($img_src,$dst_w,$dst_h)

          Ce qui semble normal.

          Mais j'ai essaié de la placer ca:
          echo '<img src="upload/'.$data['photo1'].'" width="336" height="200" style=""/>';

          Entre ma requette et la fonction "redimage" et la! La photo s'affiche... :/
          1. OUps erreur de ma part ;->

            la ligne exacte est : list($width, $height, $type, $attr) = getimagesize($img_src);
            1. Ok je vais essayer, mais mais dans ta fonction pourrais tu me dire a quoi est égal la variable: $monImage ?

              A vu d'oiel je dirais que c'est la meme valeur que: $data['photo1']

              Az
              1. alors retravaiilons un peu ta fonction comme ceci :

                function redimage($img_src,$dst_w,$dst_h)
                {
                // Lit les dimensions de l'image
                list($width, $height, $type, $attr) = getimagesize($monImage);
                $src_w = $width; $src_h = $height;
                // Teste les dimensions tenant dans la zone
                $test_h = round(($dst_w / $src_w) * $src_h);
                $test_w = round(($dst_h / $src_h) * $src_w);
                // Si Height final non précisé (0)
                if(!$dst_h) $dst_h = $test_h;
                // Sinon si Width final non précisé (0)
                elseif(!$dst_w) $dst_w = $test_w;
                // Sinon teste quel redimensionnement tient dans la zone
                elseif($test_h>$dst_h) $dst_w = $test_w;
                else $dst_h = $test_h;

                // Affiche les dimensions optimales
                print 'width="'.$dst_w.'" height="'.$dst_h.'"
                }

                ça devrait enlever les problème de division par 0.

                Après pour l'appelle de la fonction, je vois pas pourquoi $data['photo1'] serait vide.
                Essaye d'afficher le contenu de cette variable juste avant l'image pour voir si elle contient bien ce qu'il faut.
                Si elle est vide, il y a peut-être un problème sur ta requète.
                1. Oui y a du mieux mais ca marche touours pas...

                  Warning: getimagesize(upload/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\pragma\result.php on line 113

                  Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 116

                  Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 117
                  WIDTH=100HEIGHT=0

                  il me dit qu'il n'arrive pas a ouvir l'image ou qu'il ne la trouve pas car l'url est: "upload/" ca veut donc dir que $data['photo1'] est nul.

                  donc j'ai essayé ca:

                  {
                  echo '<td style="" valign="top" ><img src="upload/'.$data['photo1'].'" alt="Lancement PragmA" width="336" height="200" style=""/></td>';
                  }


                  Et ca marche....

                  Y a des jours ou on est blasé mais 3 d'affilé ca fait long...
                  1. Salut c'est encore moi ;-)

                    J'ai bein l'impression que tu te mélange les pinceaux avec les chaines et les variables !

                    essaye comme ça :
                    <?php
                    print '<IMG SRC="./upload/'.$data['photo1'].'" '.redimage('upload/'.$data['photo1'].'',100,100).'>';
                    ?>