Faccio un select al database, e devo restituire 2 while diversi.
Riesco a farlo solo facendo 2 volte il SELECT dal db.
E' possibile fare 1 SELECT e 2 WHILE?
Voglio evitare di appesantire inutilmente il sito...
Faccio un select al database, e devo restituire 2 while diversi.
Riesco a farlo solo facendo 2 volte il SELECT dal db.
E' possibile fare 1 SELECT e 2 WHILE?
Voglio evitare di appesantire inutilmente il sito...
xDOMYx
...che tradotto in italiano significa?Originariamente inviato da xDOMYx
Faccio un select al database, e devo restituire 2 while diversi.
Riesco a farlo solo facendo 2 volte il SELECT dal db.
E' possibile fare 1 SELECT e 2 WHILE?
Voglio evitare di appesantire inutilmente il sito...![]()
"restituire 2 while diversi" ...questa non l'avevo mai sentita!![]()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Attualmente uso questo:
Vorrei fare qualcosa qualcosa del genere:codice:$result = mysql_query("................"); while($row = mysql_fetch_array( $result )) { ................ } $result2 = mysql_query("................"); while($row = mysql_fetch_array( $result2 )) { ................ }
Ma non funge...codice:$result = mysql_query("................"); while($row = mysql_fetch_array( $result )) { ................ } while($row = mysql_fetch_array( $result )) { ................ }
Penso sia inutile eseguire 2 volte la stessa query per prelevare le stesse informazioni dal database...
xDOMYx
Non funge perché il mysql_fetch_array( $result ) si consuma tutto il resultset nel primo while e quando lo chiami nel secondo while di nuovo sei già alla fine...Originariamente inviato da xDOMYx
Vorrei fare qualcosa qualcosa del genere:
Ma non funge...Codice PHP:
$result = mysql_query("................");
while($row = mysql_fetch_array( $result )) {
................
}
while($row = mysql_fetch_array( $result )) {
................
}
tra un while e l'altro devi riportare il puntatore del resultset sul primo record con:
Codice PHP:
mysql_data_seek($result, 0);
Perdonami, ma non riesco a comprendere il senso e l'utilità di ciò che vuoi fare. Perchè eseguire 2 volte la stessa query? quando basta eseguirla una sola volta e fare tutto nell'unico while!Originariamente inviato da xDOMYx
Attualmente uso questo:
Vorrei fare qualcosa qualcosa del genere:codice:$result = mysql_query("................"); while($row = mysql_fetch_array( $result )) { ................ } $result2 = mysql_query("................"); while($row = mysql_fetch_array( $result2 )) { ................ }
Ma non funge...codice:$result = mysql_query("................"); while($row = mysql_fetch_array( $result )) { ................ } while($row = mysql_fetch_array( $result )) { ................ }
Penso sia inutile eseguire 2 volte la stessa query per prelevare le stesse informazioni dal database...
Fammi un esempio pratico del perchè ti è venuto in mente una simile idea. Cosa vuoi ottenere?![]()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Il problema non è far funzionare il secondo while riazzerando il contatore quanto l'inutilità di ciò che si sta cercando di fare!Originariamente inviato da philbert
Non funge perché il mysql_fetch_array( $result ) si consuma tutto il resultset nel primo while e quando lo chiami nel secondo while di nuovo sei già alla fine...
tra un while e l'altro devi riportare il puntatore del resultset sul primo record con:
Codice PHP:
mysql_data_seek($result, 0);
![]()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
....magari uno ha bisogno di stampare 2 tabelle una sotto l'altra con dati che provengono dalla stessa query....questo non si può fare con un solo whileOriginariamente inviato da satifal
Fammi un esempio pratico del perchè ti è venuto in mente una simile idea. Cosa vuoi ottenere?![]()
![]()
Fai la query;
scorri con il while salvando il result set in un array;
questo array lo puoi scorrere tutte le volte che vuoi con il foreach.
http://www.miniscript.it
Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.
Si, questo potrebbe essere un caso, ma è sbagliato risolverlo ciclando 2 volte il resultset. In ogni caso, e a maggior ragione quando si ha bisogno più volte degli stessi dati, il metodo corretto è quello di popolare un array con i valori del resultset e riutilizzarlo in base alle necessità. Ciò evita anche di mescolare codice HTML con montagne di codice PHP.Originariamente inviato da philbert
....magari uno ha bisogno di stampare 2 tabelle una sotto l'altra con dati che provengono dalla stessa query....questo non si può fare con un solo while![]()
![]()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)