Probleme de syntaxe

davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 5 sept. 2007 à 14:33
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 5 sept. 2007 à 19:09
Voila ce code me per,et de récupérer l'URL d'une image dans ma base de donnée puis de la redimensionner... Mais ca marche pas... En faite le probleme ce situ surment dans ma derniere commande "echo"                                                

<?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 !
'.$sql.'
'.mysql_error());
while ($data=mysql_fetch_array($req))

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;
}
{
echo '';
}
?>

l'erreur est la suivante:

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

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

WIDTH=336HEIGHT=0

Les lignes 105 et 106 correspondes a la 2eme partie de mon code soit ca:

// 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);

Merci de votre aide

Az

5 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 sept. 2007 à 14:38
Hello,

Comme le dit l'erreur, tu divises par 0... donc $src_w == 0 ou n'existe pas.

donc tu dois faire une condition if dans le cas à ça vaut 0.
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
5 sept. 2007 à 14:54
En effet 0 est l'erreur mais pourtant c'est pas 0... regardes:

echo '';

La largeur est de 336 ca il le recupere bien pas la hauteur qui est de 200

Et comme le fonction "redimage" le stipule:

   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;

Donc mon code ne récupere pas la valeur 200 par contre il récupere bien 336 qui est la largeur.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 sept. 2007 à 15:01
// 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);

juste après, fais un echo $src_w; et echo $src_h;
si php dit que c'est 0, c'est 0 ! autre chose serait bien étonnant...
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
5 sept. 2007 à 18:12
Pourtant cette comande HTML fonctionne:

>

monimage.jpg = upload/'.$data['photo1'].

upload = mon dossier ou sont stoké mes images

.$data['photo1']. = variable, qui est egale au nom de ma photo

xx = largeur

yy = hauteur

Comment l'ecrire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 sept. 2007 à 19:09
Je ne comprends pas ce que tu veux dire.
Ton pb porte sur une division par 0, parce que $src_w et $src_h  n'existent pas ou valent 0. Accepte ça et résoud le problème en conséquence.
à+
0
Rejoignez-nous