PDA

View Full Version : [sql] Salta sempre il primo record!


Gregor
26-06-2007, 12:49
Voglio ricavare da una tabella una serie di dati da inserire in un elenco/menų.
No so il perchč ma il primo record restituito dalla query lo perdo! :(

Questo il codice:

<?php
$query="select distinct elem from tabella order by elem";
$result = mysql_query($query, $db);

print("<select name=\"elem\" id=\"elem\"");
while ($array = mysql_fetch_array($result))
{
print("<option>".$array['elem']."</option>");
}
print("</select>");
?>

La query mi restituisce gli elementi corretti (taestata direttamente sul db), ma quando passo lo script mi perdo il primo record. :confused: :mbe:
Suggerimenti?

Qual č il metodo pių veloce per ricavare e immagazzinare dati ottenuti da una query tipo quella sopra? Tnx!

Tnx!

vizzz
26-06-2007, 17:23
io di solito uso la fetch_row, cosė su due piedi cmq non vedo errori nel tuo codice.

Teju
26-06-2007, 21:32
cosė su due piedi cmq non vedo errori nel tuo codice.
...concordo... non mi pare sbagliato il codice, sei sicuro che facendo "select distinct" non ti prenda la prima riga perchč č uguale a qualche altra, o avendo l'"order by elem" non ti metta la prima riga pių avanti in ordine alfabetico?? :D

kk3z
26-06-2007, 22:16
Non hai chiuso il tag <select>:
print("<select name=\"elem\" id=\"elem\">");

Poi, usando mysql_fetch_array č come se usassi mysql_fetch_row e mysql_fetch_assoc insieme (effettivamente duplicando il tempo impiegato), nel tuo caso consiglio di usare mysql_fetch_assoc.

Esempio preso da php.net:
Benchmark on a table with 38567 rows:

mysql_fetch_array
MYSQL_BOTH: 6.01940000057 secs
MYSQL_NUM: 3.22173595428 secs
MYSQL_ASSOC: 3.92950594425 secs

mysql_fetch_row: 2.35096800327 secs
mysql_fetch_assoc: 2.92349803448 secs

Gregor
27-06-2007, 06:50
Non hai chiuso il tag <select>:
print("<select name=\"elem\" id=\"elem\">");

Poi, usando mysql_fetch_array č come se usassi mysql_fetch_row e mysql_fetch_assoc insieme (effettivamente duplicando il tempo impiegato), nel tuo caso consiglio di usare mysql_fetch_assoc.

Esempio preso da php.net:

Incredibile!
Eliminando "distinct" le ritrovavo tutte, ovviamente ripetute!
Nessun "segnale" di errore.

Era proprio il tag il problema!!!! :)
Tnx kk3z :D

Gregor
27-06-2007, 07:31
(risolto)