La boucle while en php

Fermé
Loulou - 4 oct. 2006 à 15:46
 chanteur06 - 23 oct. 2007 à 12:13
Bonjour,

j'ai une requete qui s'execute normal sur sqlserver et me donne plusieurs enregistrements comme résultat mais si je copie cette requete dans une partie du code php et je manipule le résultat dans une boucle while , je remarque que le programme sort de la boucle while avec le traitement qui s' est fait sur le 1 er enregistrement seulement comme si on a un seul enregistrement et continu le reste du code normal.
je veux une explication de ça et merci d'avance.

2 réponses

oberion Messages postés 1253 Date d'inscription mardi 26 septembre 2006 Statut Membre Dernière intervention 29 septembre 2007 248
4 oct. 2006 à 16:35
Bonjour,

Sans code, pas d'explication.
0
bonjour,
J'ai un soucis que je ne comprend pas avec while:
seul le 1er enregistrement sur la base de test est sortie (en local sur easy php)
bien que plusieurs animaux du mm type soit enregistrés,le résultat n'en affiche qu'un!
si quelqu'un peut m'éclairer...
merci

// Sélection des animaux d'une catégorie donnée
$query = "SELECT * FROM animal
WHERE animalType=\"{$_POST['interet']}\""; #24
$result = mysql_query($query)
or die ("Exécution de la requête impossible");

// Affiche les résultats dans un tableau
echo "<table cellspacing='10' border='0' cellpadding='0' width='100%'>"; #29

echo "<tr><td colspan='5' align='right'>
<i>Cliquez sur une image pour l'afficher en grand</i><br><hr>
</td></tr>\n";
while ($ligne = mysql_fetch_array($result,MYSQL_ASSOC) ) #34
{ $f_prix = number_format($ligne['animalPrix'],2);

// Y a-t-il plusieurs couleurs ?
$query = "SELECT * FROM Couleur WHERE animalNom='{$ligne['animalNom']}'"; #38

$result2 = mysql_query($query) or die(mysql_error()); #40
$nbCouleurs = mysql_num_rows($result2); #41

// Affiche une ligne pour chaque animal
echo "<tr>\n";
echo "<td>{$ligne['animalID']}</td>\n";
$nomAnimal = stripslashes($ligne['animalNom']);
echo "<td><font size='+1'><b>$nomAnimal</b></font></td>\n";
echo "<td>{$ligne['animalDescription']}</td>\n";
// Affiche l'image s'il n'y a pas plusieurs couleurs
if ($nbCouleurs <= 1) #50
{ echo "<td><a href='../images/{$ligne['animalImage']}'
border='0'>
<img src='images/{$ligne['animalImage']}' border='0'
width='100' height='80'></a></td>\n";
}
echo "<td align='center'>$f_prix €</td>\n
</tr>\n";
// Affiche une ligne pour chaque couleur si plusieurs couleurs
if ($nbCouleurs > 1) #59
{ while ($ligne2 = mysql_fetch_array($result2,MYSQL_ASSOC))
{ echo "<tr><td colspan=2> </td>
<td>{$ligne2['animalCouleur']}</td>
<td><a href='../images/{$ligne2['animalImage']}'
border='0'>
<img src='../images/{$ligne2['animalImage']}' border='0'
width='100' height='80'></a></td>\n";
}
}
echo "<tr><td colspan='5'><hr></td></tr>\n";
}
echo "</table>\n";
echo "<div align='center'>
<a href='catalogue.php'><b>Pour en voir d'autres</b></a></div>";
?>

Dc les types sont tous affichés mais pas les résultats escomptés........
0