una registro primer obtener mysql_fetch_array mysql_data_seek funciona consulta como array php

php - registro - Utilice la consulta dos veces mysql_fetch_array



mysql_fetch_array mysqli (5)

un simple

$stuff = mysql_query("SELECT * FROM users"); while($s = mysql_fetch_array($stuff)){ # .... } while($r = mysql_fetch_array($stuff)){ # ... }

El último tiempo () no funciona. He intentado ejecutar foreach ($ cosas como $ s) pero luego obtengo un error de matriz no válido.

¿Cómo puedo usar la misma consulta dos veces?


Aquí hay otra solución más simple:

$slq = "SELECT * FROM users"; $stuff1 = mysql_query($slq); while($s = mysql_fetch_array($stuff1)){ # .... } $stuff2 = mysql_query($slq); while($r = mysql_fetch_array($stuff2)){ # ... }

Asigne el sql a una variable, y llame a mysql varias veces.

no mas mysql usa mysqli o pdo


Si el usuario "foreach" en lugar de "while" no tendrá ningún problema y no será necesario que mysqli_seek_data ():

//1st loop : foreach($stuff as $row) { echo $row[''...'']; } ... //2nd loop : foreach($stuff as $row) { echo $row[''...'']; }


ver los docs

Supongo que es porque

Devuelve una matriz que corresponde a la fila recuperada y mueve el puntero de datos interno hacia adelante .

Creo que mover el puntero de datos con mysql_data_seek () haría el trabajo. Pero creo que esta no es una buena manera, por lo general, debería recuperar datos de la base de datos una vez y almacenarlos.


$stuff = mysql_query("SELECT * FROM users"); while($s = mysql_fetch_array($stuff)){ # .... } // add this line mysql_data_seek( $stuff, 0 ); while($r = mysql_fetch_array($stuff)){ # ... }

Deberia hacer el truco

Otra forma es, por supuesto, almacenar el resultado en una matriz y reutilizarlo.


$stuff = mysql_query("SELECT * FROM users"); while($s = mysql_fetch_array($stuff)){ # .... } mysql_data_seek($stuff, 0); while($r = mysql_fetch_array($stuff)){ # ... } //ref: http://www.php.net/manual/en/function.mysql-data-seek.php