la soluzione è abbastanza semplice
il ciclo che ti estrae i dati, visto che necessiti questa particolare elaborazione, fai si che inserisca tutto quanto in un array così da poter fare l'operazione che necessiti senza problemi
detto questo, però, qualche suggerimento tecnico:
- mysql_num_rows($query) è lento come la morte, il controllo che fai lo puoi fare a posteriori
- invece di usare mysql_fetch_row usa mysql_fetch_assoc che ti restituisce un array che invece di usare chiavi numeriche come indice della colonna utilizza direttamente il nome ( www.php.net/mysql_fetch_assoc )
- mysql_data_seek in generale non ti serve ... è vero che potresti usarlo evitando di fare l'array, come ti ho indicato prima, ma non so quanto sarebbe più veloce l'elaborazione :\ ... indubbiamente però è molto più complessa
Esempio
codice:$query = mysql_query("SELECT * FROM albergo", $cn); $conteggio_records = 0; while($row = mysql_fetch_assoc($query)) { $conteggio_records++; ... fai quello che devi fare ... ma al posto di 0, 1, 2 ecc come indice del dato estratto utilizzi direttamente il nome della colonna del database ... } // Liberi la memoria mysql_free_result($query); // A questo punto $conteggio_records sarà maggiore di zero se c'è qualcosa, altrimenti sarà pari a zero if ($conteggio_records == 0) { echo "Nessun record!"; }
Qui un esempio completo con l'array
in questo contesto ti basta semplicemente spostare il codice che ti elabora i dati nel ciclo for di sotto, e la riga precedente la prendi con $indice - 1 ... ovviamente assicurati che $indice non sia zero prima di fare l'accesso all'indice precedente altrimenti ti da errorecodice:$query = mysql_query("SELECT * FROM albergo", $cn); $conteggio_records = 0; $records = array(); while($row = mysql_fetch_assoc($query)) { $conteggio_records++; $records[] = $row; } // Liberi la memoria mysql_free_result($query); // A questo punto $conteggio_records sarà maggiore di zero se c'è qualcosa, altrimenti sarà pari a zero if ($conteggio_records == 0) { echo "Nessun record!"; } else { for($indice = 0; $indice < $conteggio_records; $indice++) { $row = $records[$indice]; . . . } }


Rispondi quotando