2009-08-28 20 views
5
$query1 = "SELECT * FROM idevaff_affiliates"; 
$affiliateID = mysql_query($query1) or die(mysql_error()); 

Ésta es mi consulta anterior - Me gustaría utilizarlo para dos bucles whilemúltiple mientras que PHP bucles usando la misma consulta

El primero se encuentra en la sección de encabezado - la creación de jQuery

while($row = mysql_fetch_assoc($affiliateID)){ 
} 

el segundo se utiliza en un bucle while en el cuerpo

while($row = mysql_fetch_assoc($affiliateID)){ 
} 

por qué no puedo conseguir que funcione? - Lo hice funcionar pero tuve que hacer dos consultas usando la misma información SELECT usando dos variables diferentes.

Respuesta

11

Llamar a mysql_fetch_assoc() recupera la fila siguiente (es decir, la siguiente que aún no ha recuperado). Una vez que haya recuperado todas las filas, devuelve false. Entonces, una vez que haya pasado ese primer ciclo, tiene recuperado todas las filas, ¡y todo lo que obtendrá es false todo el tiempo!

Si necesita reutilizar los mismos datos dos veces, ¿qué le parece poner todo en una matriz?

$rows = array(); 
while($row = mysql_fetch_assoc($affiliateID)){ 
    $rows[] = $row; 
} 

Ahora se puede recorrer $rows tantas veces como se quiera:

foreach($rows as $row) { ... } 
+0

Gracias - No quería mantener mi trabajo. – Kauthon

+1

@ La sugerencia de Wizzard de 'mysql_data_seek' para rebobinar el conjunto de resultados es una mejor opción. Entre otras cosas, no utilizará un montón de RAM en conjuntos de resultados como esta respuesta al almacenar cada fila en la memoria. – ceejayoz

6

Esto no funciona porque una vez que se ejecuta a través del conjunto de resultados una vez, los resultados puntero interno es al final . Para volver a utilizarlo, debe usar mysql_data_seek antes del segundo ciclo para restablecer el puntero interno al comienzo del conjunto de resultados.

1

Puede buscar la primera fila ... usando mysql_data_seek ($ affiliateID, 0), ahora puede hacer mysql_fetch_assoc() de nuevo ... de todos modos, prefiero cargar el resultado en una matriz.

Cuestiones relacionadas