Visualizzazione risultati 1 fino 5 di 5

Discussione: Spedire valori del checkbox a database

  1. #1
    Guest

    Predefinito Spedire valori del checkbox a database

    ciao a tutti sono nuova su questo forum,

    vorrei però subito chiedere un aiuto:
    ho un form con delle caselle a scelta, checkbox, e vorrei spedire tramite php il valore ad una tabella di un database.
    Siccome i diversi valori vorrei inserirli nella solita casella ho provato questa soluzione

    Codice PHP:
    <?php

    include("connessione_DB.php");

    function
    invia(){

    $nome = $_POST['nombre'];
    $cogn = $_POST['cognome'];
    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno'];
    $luogo = $_POST['luogo'];
    $indirizzo = $_POST['indirizzo'];
    $citta = $_POST['citta'];
    $telefono = $_POST['telefono'];
    $email = $_POST['email'];
    $username = $_POST['user'];
    $pass = $_POST['pass'];
    $copass = $_POST['copass'];
    $racc = $_POST['racconti'];
    $poesia = $_POST['poesia'];
    $foto = $_POST['fotografia'];


    if (
    $racc=='Racconti') {

    $inte+=$racc;

    }

    if (
    $poesia=='Poesia') {

    $inte+=$poesia;

    }

    if (
    $foto=='Fotografia') {

    $inte+=$foto;

    }

    $rs=mysql_query("SELECT username
    FROM utenti
    WHERE utenti.username='
    $username'") or die(mysql_error());

    $num_rows = mysql_num_rows($rs);










    if (
    $nome==""||$cogn==""||$username=="")

    {


    echo
    "<p>Mancano dei dati <a href='PaginaRegistrazione.php'>torna indietro </a> e controlla il modulo</p>";


    }


    if(
    $num_rows>1)

    {
    echo
    "<p>Username già esistente, <a href='PaginaRegistrazione.php'>torna indietro </a> e proponi username alternativo</p> ";

    }



    if(
    $pass!=$copass)

    {
    echo
    "<p>Le due password non sono uguali, <a href='PaginaRegistrazione.php'>torna indietro e ridigita le due password correttamente </a></p> ";

    }


    if (!
    ereg('^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$',$email))
    {

    echo
    "<p>email non valida!<a href='PaginaRegistrazione.php'>torna indietro e ridigita corretamente l'email </a></p>";

    }




    else {

    $query = mysql_query("INSERT INTO utenti (nome, cogn, data, luogo, indirizzo, citta, telefono, email, username, pass, interessi, datains) VALUES ('$nome', '$cogn', '$data', '$luogo', '$indirizzo', '$citta', '$telefono', '$email', '$username', '$pass', '$inte', now() )") or die (mysql_error());

    echo
    "<p>I dati sono stati inviati</p>";



    }



    }





    ?>




    ma naturalmente non va bene perché nel campo della tabella c'è sempre uno 0.
    Perché? Cosa devo modificare?

    Grazie per l'attenzione ed eventuale risposta.

  2. #2
    Guest

    Talking vediamo se ho capito...

    Hmm...se le variabili derivanti da checkbox sono $poesia e gli altri due dove hai messo i controlli con if...allora non capisco il significato di $inte...XD se è un intero che deve crescere(1,2,3) quando è stata checkata la casella prova con:

    Codice PHP:
    <?php

    include("connessione_DB.php");

    function
    invia(){

    $nome = $_POST['nombre'];
    $cogn = $_POST['cognome'];
    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno'];
    $luogo = $_POST['luogo'];
    $indirizzo = $_POST['indirizzo'];
    $citta = $_POST['citta'];
    $telefono = $_POST['telefono'];
    $email = $_POST['email'];
    $username = $_POST['user'];
    $pass = $_POST['pass'];
    $copass = $_POST['copass'];
    $inte=0;
    if(isset(
    $_POST['racconti'])){
    $inte++; }

    if(isset(
    $_POST['poesia'])){
    $inte++;}

    if(isset(
    $_POST['fotografia'])){
    $inte++; }

    $rs=mysql_query("SELECT username
    FROM utenti
    WHERE utenti.username='
    $username'") or die(mysql_error());

    $num_rows = mysql_num_rows($rs);










    if (
    $nome==""||$cogn==""||$username=="")

    {


    echo
    "<p>Mancano dei dati <a href='PaginaRegistrazione.php'>torna indietro </a> e controlla il modulo</p>";


    }


    if(
    $num_rows>1)

    {
    echo
    "<p>Username già esistente, <a href='PaginaRegistrazione.php'>torna indietro </a> e proponi username alternativo</p> ";

    }



    if(
    $pass!=$copass)

    {
    echo
    "<p>Le due password non sono uguali, <a href='PaginaRegistrazione.php'>torna indietro e ridigita le due password correttamente </a></p> ";

    }


    if (!
    ereg('^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$',$email))
    {

    echo
    "<p>email non valida!<a href='PaginaRegistrazione.php'>torna indietro e ridigita corretamente l'email </a></p>";

    }




    else {

    $query = mysql_query("INSERT INTO utenti (nome, cogn, data, luogo, indirizzo, citta, telefono, email, username, pass, interessi, datains) VALUES ('$nome', '$cogn', '$data', '$luogo', '$indirizzo', '$citta', '$telefono', '$email', '$username', '$pass', '$inte', now() )") or die (mysql_error());

    echo
    "<p>I dati sono stati inviati</p>";



    }



    }





    ?>
    così dovrebbe partire(

    lo script non funzionava perché la formula $variabile+=$variabile1 si usa per incrementare di un valore numerico un altro valore numerico, il tuo $foto,ad esempio era na stringa nn si può fare 1+'ciao' XD)
    fammi sapere se ho sbagliato qualcosa;

    buona fortuna
    Ultima modifica di ALFRAN : 12-01-2011 alle ore 00.52.09

  3. #3
    Guest

    Predefinito

    Non è un intero, vorrei avere una variabile formata dal contenuto delle altre variabili inviate dal form per poterle poi mettere insieme nel solito campo di una tabella del database.
    Dopo la tua spiegazione ho provato a fare così:
    Codice PHP:
    $nome = $_POST['nombre'];
    $cogn = $_POST['cognome'];
    $data = $_POST['anno']."/".$_POST['mese']."/".$_POST['giorno'];
    $luogo = $_POST['luogo'];
    $indirizzo = $_POST['indirizzo'];
    $citta = $_POST['citta'];
    $telefono = $_POST['telefono'];
    $email = $_POST['email'];
    $username = $_POST['user'];
    $pass = $_POST['pass'];
    $copass = $_POST['copass'];
    $racc = $_POST['racconti'];
    $poesia = $_POST['poesia'];
    $foto = $_POST['fotografia'];

    $interessi="";

    if(isset(
    $_POST['racconti'])){

    $interessi.=$_POST['racconti'];

    }

    if(isset(
    $_POST['poesia'])){

    $interessi.=$_POST['poesia'];
    }

    if(isset(
    $_POST['fotografia'])){

    $interessi.=$_POST['fotografia'];
    }
    Funziona, ma il problema è che ora le inserisce nel campo attaccate e quindi diventa un unica parola quindi è impossibile poi trovarle attraverso una ricerca.
    Come posso fare per avere i valori saperati da una virgola?
    Ultima modifica di diapositive : 12-01-2011 alle ore 11.46.43

  4. #4
    Guest

    Talking

    hmm a questo punto prova:

    Codice PHP:

    $interessi
    ="";
    if(isset(
    $_POST['racconti']) & isset($_POST['poesia']) & !isset($_POST['fotografia'])){
    $interessi.=$_POST['racconti'].",".$_POST['poesia'];
    }

    elseif(isset(
    $_POST['racconti']) & !isset($_POST['poesia']) & isset($_POST['fotografia'])){
    $interessi.=$_POST['racconti'].",".$_POST['fotografia'];
    }

    elseif(!isset(
    $_POST['racconti']) & isset($_POST['poesia']) & isset($_POST['fotografia'])){
    $interessi.=$_POST['poesia'].",".$_POST['fotografia'];
    }

    elseif(isset(
    $_POST['racconti']) & !isset($_POST['poesia']) & !isset($_POST['fotografia'])){
    $interessi.=$_POST['racconti'];}

    elseif(!isset(
    $_POST['racconti']) & isset($_POST['poesia']) & !isset($_POST['fotografia'])){
    $interessi.=$_POST['poesia'];}

    elseif(!isset(
    $_POST['racconti']) & !isset($_POST['poesia']) & isset($_POST['fotografia'])){
    $interessi.=$_POST['fotografia'];}

    elseif(isset(
    $_POST['racconti']) & isset($_POST['poesia']) & isset($_POST['fotografia'])){
    $interessi.=$_POST['racconti'].",".$_POST['poesia'].",".$_POST['fotografia'];
    }






    //resto del codice dopole varie condizioni...
    in questo modo considera tutte le possibilità; a seconda di quali variabili sono statecheckate ti da valore alla variabile interessi in modo che
    variabile1,variabile2
    quindi se sono settate,ad esempio,foto e racconti. $interessi sarà
    racconti,foto

    e così via...
    speriamo che mo parte XD

  5. #5
    Guest

    Thumbs up

    PERFETTO!!!! Grazie mille!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •