PDA

View Full Version : [PHP] loop su resultset di una query


dany84
31-01-2009, 12:42
Ciao a tutti!
Sto facendo un loop sul resultset di una query con il classico while e la funzione mysql_fetch_array.
Mi domandavo se fosse possibile utilizzare un for per fare questo loop, in quanto mi servirebbe una variabile "count", che vorrei evitare di incrementare manualmente nel while.
Non è sicuramente una cosa essenziale, ma mi sarebbe utile per ottenere del codice più pulito (IMHO) e meno dispersivo.
In rete ho trovato discussioni su altri forum di gente che ci stava provando e chiedeva aiuto, ma senza alcuna soluzione proposta che funzionasse :fagiano:

Dânêl
31-01-2009, 15:37
Credo che non ci sia molta differenza tra il while e il for in una situazione simile. Ovviamente considerando il caso generale, nel tuo contesto potrebbe non essere cosi

Ad ogni modo per sapere quante volte devi far andare il for potresti usare la funzione mysql_num_rows() (http://it.php.net/manual/en/function.mysql-num-rows.php) per sapere il numero di righe restituite dalla query.

Oppure usare come condizione del for la funzione mysql_fetch_array()
es:
for( $count=0; $row = mysql_fetch_array($query_result); $count++)
{
//fa qualcosa
}

che sarebbe equivalente a:

$count = 0;
while( $row = mysql_fetch_array($query_result))
{
//fa qualcosa
$count++;
}

dany84
04-02-2009, 14:54
Grazie mille, è servito :)
Avevo fatto un ragionamento assurdo io :stordita: