Ihre erste Abfrage ist in Ordnung, aber die while ist falsch:
Sehen Sie sich nur an, was Sie hier gemacht haben:
$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>";
}
dies endet in einer "Endlosschleife" und verursacht $rows
wird immer gesetzt. Was Sie brauchen ist:
while($rows=mysql_fetch_array($query_run))
dies wird myslq_fetch_array
verursachen um jedes Mal eine neue Zeile zurückzugeben, wenn die While-Bedingung geprüft wird. Und wenn alle 4 Zeilen zurückgegeben werden, $rows
wird falsch und die Schleife wird gestoppt.
Und um vollständig zu sein:In Ihrem zweiten Beispiel iterieren Sie genau 4 Mal über die GLEICHE Zeile, Sie haben nur einmal abgerufen, indem Sie myslq_fetch_array
aufgerufen haben .
Eine mögliche Lösung dafür besteht darin, die Zeile INNERHALB der While-Schleife erneut abzurufen:
$i=4;
while ($i>0){
$rows = mysql_fetch_array(...);
$i--;
}
Allerdings sollten Sie die erste Lösung bevorzugen, da Sie dann nicht darauf achten müssen, dass der Ergebniszähler mit Ihrer Iteratorvariable übereinstimmt.
Seitenknoten:Nennen Sie es $row
ohne das 's', weil man immer nur EINE Zeile zurückbekommt.