sql >> Base de Datos >  >> RDS >> Mysql

consulta para mostrar cuatro datos aleatorios de la base de datos

Tu primera consulta está bien, pero el while está mal:

Solo mira lo que hiciste aquí:

$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>";
}

esto terminará en un "bucle infinito" porque $rows siempre estará configurado. Lo que necesita es:

while($rows=mysql_fetch_array($query_run))

esto causará myslq_fetch_array para devolver una nueva línea cada vez que se verifica la condición while. Y si se devuelven las 4 filas, $rows será falso y el bucle se detendrá.

Y para ser completo:en su segundo ejemplo, está iterando exactamente 4 veces sobre la MISMA fila, solo obtuvo una vez llamando a myslq_fetch_array .

Una posible solución a eso será buscar la fila nuevamente DENTRO del ciclo while:

$i=4;
while ($i>0){
    $rows = mysql_fetch_array(...);
    $i--;
}

Sin embargo, debe preferir la primera solución, porque entonces no necesita tener cuidado de que el recuento de resultados coincida con su variable de iterador.

nodo lateral:Llámalo $row sin la 's', porque siempre recuperas UNA fila.