Newsgroup: it.comp.www.php
Titolo: select senza risultati, o quasi

dalla tabella 'orari' del db 'ium' voglio selezionare i campi 
'partenza', da inserire in un form x poi calcolare delle tariffe..
common_db.inc è il file che contiene le funzioni db_connect e sql_error
i campi selezionati da 'partenza' usando distinct sono 8, infatti la 
pagina che questo codice mi dà come risultato contiene in effetti sto 
form che ha 8 spazi, se contati scendendo col mouse.. ma senza nome 
sopra! non sono specificati i nomi degli 8 records, che restano 
bianchi.. perchè?
<form method=get action="prezzi.php">
Consulta le tariffe in vigore
<select name=tratta>
<?php
include "./common_db.inc";
$link_id = db_connect('ium');
   if(!$link_id) error_message(sql_error());
$result = mysql_query("SELECT DISTINCT partenza FROM orari ORDER BY 
partenza ASC", $link_id);
while($query_data = mysql_fetch_row($result)) {
     echo"<option>$query_data[$result]</option>";
}
echo "</select><br><br>";
echo "<input type=submit></form>";
?>

 }
Una $i non ci andrebbe male ;)
$i=0;
while($query_data = mysql_fetch_row($result)) {
    echo"<option>$query_data[$i]</option>";
    $i++;
}

 }
ok.. grazie!
ora mi direste un'ultima cosa?
come dovrei fare x assegnare un value progressivo alle varie options?
come e cosa dovrei incorporare nel ciclo while?
il value mi servirebbe per un controllo lato client in javascript
saluti!

 come e cosa dovrei incorporare nel ciclo while?
Beh.. ce l'hai già.. è sempre la $i.. basta che la stampi dove ti interessa.
Vedi esempio sopra.

 wrote in message
news:5fGW8.14897$K_4.3...@twister1.libero.it...

ehm.... no!
mysql_fetch_row da in questo caso solo un valore (DISTINCT partenza)
ed il dato e' in query_data[0].
while($query_data = mysql_fetch_row($result)) {
    echo"<option>$query_data[0]</option>";
}
forse piu' chiaro usando mysql_fetch_assoc:
while($query_data = mysql_fetch_assoc($result)) {
    echo"<option>";
    echo $query_data["partenza"];
    echo "</option>";
}
per i value (un po' diviso per aumentare la leggibilita'):
$result = mysql_query("SELECT DISTINCT partenza FROM orari ORDER BY partenza
ASC", $link_id)
    or die(mysql_error());
$i=0;
while($arrRes = mysql_fetch_assoc($result)) {
    echo "\t<option";
    echo " value=\"$i\"";
    echo ">";
    echo $arrRes["partenza"];
    echo "</option>\n";
    $i++;
}


Piccolo consiglio in piu', quando si ha dei dubbi con una variabile basta
inserire queste righe per indagare:
echo "<PRE>";
print_r($query_data);
echo "</PRE>";
Di solito si capisce subito la struttura.

il sapiente Ic^A^rO dice:

no... nell'array, come dice Jurgen, non ci va $i.
se vuoi scorrere le colonne ci dovresti fare due cicli annidati:
il primo per fetchare le righe, il secondo per stampare le varie colonne.
quindi:
$righe=mysql_num_rows($result);
while($query_data = mysql_fetch_row($result))
        {
        $i=0;
        while($i<$righe)
                echo "un campo per volta: ".$query_data[$i];
        }
questo, ovviamente, se vuoi scorrere le colonne...
altrimenti, Jurgen ha dato la risposta su un campo solo
(vedendo l'<option> direi proprio che vorresti stampare $query_data[N])
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/motivation.it.html

 ehm.... no!
Sě.. č vero.. avete ragione... avevo guardato molto in fretta il post
prestando poca attenzione alla query...
Avevo visto
echo"<option>$query_data[$result]</option>";
-------------------------------^^
nel while e ho pensato che fosse un semplice errore di distrazione.

     echo "</option>";
[CUT]
grazie a tutti..
alla fine ho usato questo codice
$i = 0;
while($query_data = mysql_fetch_row($result)) {
     echo"<option value=$i>$query_data[0]</option>";
     $i++;
}
saluti