usar recorrer obtener mysql_fetch_array mysql_fetch_all funciona ejemplos datos como array php mysql fetch

recorrer - obtener datos mysql php



mysql_fetch_array devuelve solo una fila (3)

Ok, tengo el siguiente código:

$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE ''a%'' OR artist LIKE ''b%'' OR artist LIKE ''c%''"); $array_result= mysql_fetch_array($array);

Luego, cuando trato de hacer eco de los contenidos, solo puedo repetir $array_result[0]; , que genera el primer elemento, pero si intento hacer eco $array_result[1]; Obtengo una compensación indefinida.

Sin embargo, si ejecuto la consulta anterior a través de PHPMyAdmin, devuelve una lista de 10 elementos. ¿Por qué no se reconoce esto como una matriz de 10 elementos, lo que me permite hacer eco de 0-9?

Gracias por la ayuda.


Deberías estar usando while para obtener todos los datos.

$array_result = array(); while ($row = mysql_fetch_array($array, MYSQL_NUM)) { $array_result[] = $row; } echo $array_result[4];


Prefiero usar este código en su lugar:

$query = "SELECT artist FROM directory WHERE artist LIKE ''a%'' OR artist LIKE ''b%'' OR artist LIKE ''c%''"; $result = mysql_query($query) or die(mysql_error()); while(list($artist) = mysql_fetch_array($result)) { echo $artist; }

Si agrega más campos a su consulta, solo agregue más variables a la lista ($ artist, $ field1, $ field2, etc ...)
Espero que ayude :)


Eso es porque la matriz representa una sola fila en el conjunto de resultados devuelto. Necesita ejecutar la función mysql_fetch_array() nuevamente para obtener el siguiente registro. Ejemplo:

while($data = mysql_fetch_array($array)) { //will output all data on each loop. var_dump($data); }