La boucle while en php
Loulou
-
chanteur06 -
chanteur06 -
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.
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.
A voir également:
- La boucle while en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
2 réponses
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........
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........