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);
}