PHP - recuperación de datos

 
Vista:

recuperación de datos

Publicado por pbg (1 intervención) el 24/07/2008 10:00:50
gracias por la respuesta!!
otra pregunta, a ver si alguien lo sabe. Necesito recuperar datos de una base de datos. El código que he escrito es el siguiente:

$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
echo "sn es $result";

Pero el resultado es

'sn es Resource id #3'

cuando debería ser 'sn es 2'

¿Sabeis dónde está el problema? Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: recuperación de datos

Publicado por Diego Romero (1450 intervenciones) el 24/07/2008 12:14:22
El problema es... que así no se trabajan los resultados de una consulta a MySQL.
La variable $result contiene nada más que una referencia a los resultados de la consulta (o FALSE en caso de error), no son los resultados en sí. Tú tienes que usar esa referencia para extraer los registros devueltos por la consulta en las funciones especialmente creadas para ello.

Usando tu ejemplo sería:

$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
$row = mysql_fetch_row($result); // Aquí pasas la referencia.
echo "sn es ".$row[0];

Esa última función devuelve UN registro distinto por cada vez que la llamas usando la misma referencia hasta que no queden más registros en el resultado de la consulta. Cada registro irá a parar a $row, y $row será un array asociativo con índice numérico y base cero. Cada posición de ese array se corresponde con cada campo del registro.

En tu ejemplo la consulta debe devolver un solo campo llamado "sn" de todos los registros que hay en la tabla "stock2".

Para recorrer los resultados de una consulta en caso que haya más de un registro en ese resultado deberías hacer algo como esto:

$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)) { // (1)
echo $row[0]."<br />";
}

La línea (1) quiere decir "mientras haya registros en el resultado de la consulta..."

Hay otra función que suele facilitar la manipulación de los registros de resultados de la consulta, es mysql_fetch_array(), ésta función hace lo mismo que la anterior pero en vez de devolver un array con índice numérico, devuelve un array cuyos índices son los nombres de los campos devueltos.

$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo $row['sn']."<br />";
}

¿Se comprende lo que digo o no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: recuperación de datos

Publicado por pbg (1 intervención) el 24/07/2008 12:52:54
si si perfecto muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar