• Moderatore

    Checkbox in mysql

    Ciao, spero mi possiate aiutare.

    Ho un semplice form fatto in questa maniera, che gli utenti dovranno compilare

    <form action="script.php" method="post">
    	<input type="checkbox" name="verde"> verde<br>
    	<input type="checkbox" name="bianco"> bianco<br>
    	<input type="checkbox" name="rosso"> rosso<br> 
    	<input type="submit" value="Inserisci"><br><br/>
    </form>
    

    Ora, io vorrei memorizzare le loro scelte in una tabella mysql.
    Pensavo di farla in questa maniera:
    il campo ID per riconoscere l'utente e gli altri campi verde, bianco, rosso in tinyint (in modo da simulare il valore booleano).

    Ho due domande...

    Prima domanda
    Come devo fare lo script.php per fare in modo che i dati del form vadano a finire della tabella mysql?

    Seconda domanda
    Quella che ho descritto (form html, script in php e tabella mysql) è la scelta giusta per realizzare quello che ho in mente descritto in precedenza?


  • User

    Allora, il mio consiglio è sempre quello di tentare nella risoluzione dei problemi altrimenti non si cresce mai. 😉

    Per quanto riguarda il form, se ho capito bene hai intenzione nella tabella mysql di associare il valore 1 o 0 legandolo dalla scelta dell'utente.

    Supposto che 1 sia il valore nel caso abbia fatto il check dell'opzione e 0 nel caso non l'abbia fatto.

    Selezionerei di default il valore 0 del campo tinyint e modificherei il form associando un valore alla scelta:
    [PHP]
    ...
    <input name="verde" type="checkbox" value="1"> verde<br>
    <input name="bianco" type="checkbox" value="1"> bianco<br>
    <input name="rosso" type="checkbox" value="1"> rosso<br>
    <input type="submit" value="Inserisci"><br><br/>
    ...
    [/PHP]

    Nella pagina script, recupererei i valori tramite $_POST, ed effettuerei la query per l'inserimento dei valori.

    Spero di averti aiutato un pochino. :ciauz:


  • Moderatore

    Se ho chiesto qui sul forum è perchè non sono riuscito a risolvere il problema per mio conto 😛

    ed effettuerei la query per l'inserimento dei valori.
    è proprio questa che non so fare!
    Non sono riuscito neanche a trovare qualcosa di utile in rete.

    In realtà, qui sul forum ho trovato una soluzione, però mette in ballo gli array...
    e non credo possano essere adatti al mio caso.


  • Super User

    La query per l'inserimento dei valori è:

    [php]
    //codice di connessione al database
    $checkbox=$_POST["valore_ricevuto_dal_checkbox"];
    $query=("INSERT INTO nome_tabella (campo1, campo2, campo3)
    VALUES ('valore1', 'valore2', 'valore3')";
    $sql=mysql_query($query) or die ("Query error:" . mysql_error());

    [/php]

    Ovviamente devi cambiare i nomi della tabella, dei campi, etch 🙂


  • Moderatore

    Ho fatto diverse prove e questo codice è lunico che funziona... ma non come vorrei io :arrabbiato:

    <form action="script.php" method="post">	  
        <input type="checkbox" name="selez"> verde<br>
        <input type="checkbox" name="selez"> bianco<br>
        <input type="checkbox" name="selez"> rosso<br> 
        <input type="submit" value="Inserisci"><br><br/>
    </form>
    
    <?php
    $host = 'localhost';
    $user = '@user';
    $password = '@pass';
    $database = '@db';
    
    $db = mysql_connect($host, $user, $password)	
    or die ("Impossibile connettersi al server $host");
    
    mysql_select_db($database, $db)
    or die ("Impossibile connettersi al database $database");
    	   
    	   
    $checkbox=$_POST['selez'];
    $query=("INSERT INTO famiglia (verde, bianco, rosso) 
    VALUES ('1', '1', '1')");
    $sql=mysql_query($query) or die ("Query error:" . mysql_error());
    
    
    ?>
    

    La tabella MySQL:
    Campo - Tipo - Null - Predefinito - Extra
    Id - int(11) - No - ... - auto increment
    verde - tinyint(1) - Si - NULL
    bianco - tinyint(1) - Si - NULL
    rosso - tinyint(1) - Si - NULL

    Dove sbaglio?