• User Newbie

    Php e visualizzazione dati campo option

    Ho necessita di visualizzare una lista di opzioni in un campo di tipo select, solo che queste opzioni dovrebbero essere caricate dal database.
    Nel senso ho un campo cognome così definito

    <select name="cognome" size="1"> <option value="">Cognomi</option> </select>
    ```e vorrei che cliccando sull'apposito menu a tendina del select si vedessero tutti i cognomi inseriti nel database(quindi vanno caricati da lì, perché è lì che li faccio inserire con l'apposito form di registrazione).
    E' possibile una cosa del genere? e si si come si deve fare?
    
    grazie.

  • User Attivo

    Ciao snatch e benvenuto sul Forum GT!

    Quello che chiedi è certamente possibile e si risolve in tre passaggi:

    • Connessione al database
    • Query
    • Output della select

    [php]
    //Definiamo la funzione per connetterci al database
    function connetti($cfg) {
    $db = mysql_connect($cfg['db_host'], $cfg['db_user'], $cfg['db_password']);
    if ($db == FALSE)
    die ("Errore nella connessione.");
    mysql_select_db($cfg['db_name'], $db) or die ("Errore nella selezione del database.");
    return $db;
    }

    //Definiamo i parametri di connessione al db
    $cfg=array(
    'db_host'=>'localhost',
    'db_name'=>'nome_db',
    'db_user'=>'user_del_db',
    'db_password'=>'password_del_db'
    );

    //Connettiamoci al database
    $db=connetti($cfg);

    //Eseguiamo la query
    $query = "SELECT res.cognome FROM tua_tabella AS res GROUP BY res.cognome";
    $result = mysql_query($query, $db);
    mysql_close($db);

    //Creiamo la select
    if ($result) {
    $cognomi=mysql_fetch_assoc($result);
    echo '<select name="cognome">';
    foreach($cognomi as $c) echo '<option value="'.$c['cognome'].'">'.$c['cognome'].'</option>';
    echo '</select>';
    } else { echo "Nessun cognome nel database."; }
    [/php]Non ho provato a far girare il codice ma direi che se sostituisci i parametri con quelli corretti dovrebbe funzionare.

    Ciao,
    Luca Bartoli