Votre première requête est bonne, mais le while est faux :
Regardez ce que vous avez fait ici :
$rows=mysql_fetch_array($query_run);
while($rows)
{
echo $rows['banner_no'];
echo $rows['banner_name'];
echo "<a href=\"".$rows['Banner_website_url']. "\">";
echo "<img src=\"".$rows['banner_image_url']."\" width=\"100px\" height=\"100px\">";
echo"</a>";
}
cela se terminera par une "boucle infinie" cause $rows
sera toujours défini.Ce dont vous avez besoin est :
while($rows=mysql_fetch_array($query_run))
cela causera myslq_fetch_array
pour renvoyer une nouvelle ligne à chaque fois que la condition while est vérifiée. Et si les 4 lignes sont renvoyées, $rows
sera faux et la boucle est arrêtée.
Et pour être complet :dans votre deuxième exemple, vous itérez exactement 4 fois sur la MÊME ligne, vous venez de récupérer une fois en appelant myslq_fetch_array
.
Une solution possible à cela sera de récupérer à nouveau la ligne À L'INTÉRIEUR de la boucle while :
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Cependant, vous devriez préférer la première solution, car vous n'avez alors pas besoin de veiller à ce que le nombre de résultats corresponde à votre variable d'itérateur.
sidenode :appelez-le $row
sans le 's', car vous n'obtenez toujours qu'UNE ligne en arrière.