Marioreds
2012-01-12 14:26:48 UTC
premetto che conosco abbastanza a fondo sia php che mysql, i concetti base sono ben assodati, e sto costruendo un sito che pian piano sta facendo il suo dovere.
mi si è però presentato il seguente stranissimo problema
dopo aver settato connessione a mysql e tutto il resto come dovuto,
eseguo col php una query del tipo:
$select1 = "stringa bla bla bla"
$result1 = mysql_query($select1);
while($row1 = mysql_fetch_array($result1)) { //altro codice qui }
Poi avendo bisogno di un altra select dal database riscrivo tutto identico ma usando come nomi di variabile $select2, $result2, $row2, ecc. Fidatevi che sono tutti giusti col numero 2. cambia ovviamente il contenuto della stringa select ma questo è un dettaglio ininfluente.
dopo questa seconda chiamata
ho il bisogno di eseguirne una identica alla prima.
per tale motivo in teoria non dovrei riscrivere la $select1 in quanto è una stringa già definita e mai riassegnata.
e sempre in teoria anche la variabile $result1 è già definita e assegnata.
quindi nel codice mi sono limitato a scrivere, dopo la 2,
un nuovo
while($row1 = mysql_fetch_array($result1)) { //codice qui }
ma il codice del secondo while non parte per niente al mondo!
però, se prima ridefinisco la $result1 = mysql_query($select1) invece va tutto alla perfezione.
Ora.... ho fatto svariati tentativi, credetemi, e non ci dovrebbe essere alcuna ragione logica per questo fatto.. voglio dire: se le variabili non sono mai state riassegnate come cacchio fa il php a dimenticarsi chi è la $result1?
ho provato anche a piazzare un mysql_num_rows($result1) e mi da il numero corretto, quindi $result1 è ancora esistente dopo il while 2, ma non si capisce perché se lo riuso per un ciclo while $row = mysql_fetch_array non giri!
Qualche idea?
Sono io che sbaglio a pretendere di eseguire il secondo while senza ridefinire $result1 o è un bug di php? Secondo me è un bug. Non vedo altra spiegazione. Ma se qualche esperto ha già incontrato un caso del genere, o sa dirmi il motivo per cui non sia possibile eseguire due volte il ketch_array con lo stesso result per favore me lo spieghi! Sto impazzendo! Grazieeee!