2010-02-18 22 views
8

Ok, entonces estoy tratando de consultar mi base de datos y seleccionar todas las filas que tienen un cierto valor. Después de eso, convierto la consulta en una matriz con mysql_fetch_array(), luego trato de iterar por filas a través de la matriz obtenida usando a para cada ciclo.Cómo iterar por filas a través de una consulta de mysql en php

<?php 
$query = mysql_query("SELECT * FROM users WHERE pointsAvailable > 0 ORDER BY pointsAvailable Desc"); 
$queryResultArray = mysql_fetch_array($query); 
foreach($queryResultArray as $row) 
{ 
    echo $row['pointsAvailable']; 
} 
?> 

Aunque cuando hago esto para cualquier columna, además de la columna de la pointsAvailable dicen una columna denominada "nombre" de tipo texto que sólo devuelve una sola letra.

¿Cómo puedo iterar a través de una consulta devuelta fila por fila, y puedo buscar columnas de datos específicas de la fila actual?

Respuesta

22
$result = mysql_query("SELECT id, name FROM mytable"); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    printf("ID: %s Name: %s", $row[0], $row[1]); 
} 

o el uso de MYSQL_ASSOC le permitirá utilizar columnas llamadas

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    printf("ID: %s Name: %s", $row["id"], $row["name"]); 
} 
+0

Gracias funcionó a la perfección. Entonces, ¿realmente solo devuelve una fila cada vez que se llama a mysql_fetch_array en el recurso de consulta? – AFK

+0

Cada vez que se llama a mysql_fetch_array, devuelve la fila actual y mueve el puntero de datos a la siguiente fila. Cuando se atraviesan todas las filas, devuelve falso y el ciclo while finaliza. – Trevor

0

Sí función mysql_fetch_array ($ resultado) es el camino a seguir.

Cuestiones relacionadas