[PHP/MySQL]: option selezionata da database

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

in un progetto mi trovo a dover popolare una select da database. Nella funzione di inserimento nessun problema. Quando però vado ad aprire la pagina dedicata alla modifica il select presenta sempre il primo option dell'elenco (che ha valore zero e come dicitura ha Selezionare").

Come si fa a far si che una volta eseguita la lettura dei dati sia selezionato l'option corretto?
 
PHP:
print("Relay:
        <select>
            <option value='0'>Inattiva</option>
            ");
            $relay = mysql_query("SELECT * FROM relays ORDER BY id");
            while ($exp_relay = mysql_fetch_array($relay))
            {
                print("<option value='".$exp_relay["id"]."' selected>Relay ".$exp_relay["nrelay"]."</option>");
            }
        print("</select>");
 
Ultima modifica di un moderatore:
Lasciando da parte l'estensione mysql..
credo che il problema potrebbe essere che assegni a tutto il ciclo l'attributo "selected" ;
non vedo inoltre la dicitura "Seleziona" come prima option ma "Inattiva";
la scelta poi come la recuperi?
 
il mio problema è proprio quello: non so come recuperare il valore nel DB e attribuirlo al select. Poi quello che hai visto sono tutti esperimenti
 
Prova questo
PHP:
<?php
$nomehost = "localhost";
$nomeuser = "root";
$password = "password";
$db_database = "database";

$connessione = mysql_connect($nomehost, $nomeuser, $password, $db_database);
$db = mysql_select_db($db_database);

if (isset($_POST['invia'])) {
    echo " valore inviato : " . $_POST['relay'];
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <?php
    print("Relay:
        <select name='relay'>
            <option value='0'>Inattiva</option>
            ");
    $relay = mysql_query("SELECT * FROM relays ORDER BY id");
    while ($exp_relay = mysql_fetch_array($relay)) {
        print("<option value='" . $exp_relay["id"] . "'>Relay " . $exp_relay["nrelay"] . "</option>");
    }
    print("</select>");
    ?>   
    <input type="submit" name="invia" value="Invia dati"/>
</form>
ma ti consiglio vivamente di passare all'estensione mysqli
 

Discussioni simili