Visualizzazione risultati 1 fino 19 di 19

Discussione: Aggiungere value di un form al database

  1. #1
    Guest

    Predefinito Aggiungere value di un form al database

    Salve a tutti, ho in un form 4 campi. Uno corrisponde allo username e gli altri tre alla data, come segue:

    Codice PHP:
    <form>

    Username:
    <
    input type="text" name="username" id="username">

    Data di nascita:
    <
    select name="birthday_day" id="birthday_day">
    <
    option value="-1">Giorno:</option>
    <
    option value="01">1</option>
    <
    option value="02">2</option>
    <
    option value="03">3</option>
    <
    option value="04">4</option>
    <
    option value="05">5</option>
    <
    option value="06">6</option>
    <
    option value="07">7</option>
    <
    option value="08">8</option>
    <
    option value="09">9</option>
    <
    option value="10">10</option>
    <
    option value="11">11</option>
    <
    option value="12">12</option>
    <
    option value="13">13</option>
    <
    option value="14">14</option>
    <
    option value="15">15</option>
    <
    option value="16">16</option>
    <
    option value="17">17</option>
    <
    option value="18">18</option>
    <
    option value="19">19</option>
    <
    option value="20">20</option>
    <
    option value="21">21</option>
    <
    option value="22">22</option>
    <
    option value="23">23</option>
    <
    option value="24">24</option>
    <
    option value="25">25</option>
    <
    option value="26">26</option>
    <
    option value="27">27</option>
    <
    option value="28">28</option>
    <
    option value="29">29</option>
    <
    option value="30">30</option>
    <
    option value="31">31</option>
    </
    select>

    <
    select class="" id="birthday_month" name="birthday_month">
    <
    option value="-1">Mese:</option>
    <
    option value="01">gennaio</option>
    <
    option value="02">febbraio</option>
    <
    option value="03">marzo</option>
    <
    option value="04">aprile</option>
    <
    option value="05">maggio</option>
    <
    option value="06">giugno</option>
    <
    option value="07">luglio</option>
    <
    option value="08">agosto</option>
    <
    option value="09">settembre</option>
    <
    option value="10">ottobre</option>
    <
    option value="11">novembre</option>
    <
    option value="12">dicembre</option>
    </
    select>

    <
    select name="birthday_year" id="birthday_year">
    <
    option value="-1">Anno:</option>
    <
    option value="1997">1997</option>
    <
    option value="1996">1996</option>
    <
    option value="1995">1995</option>
    <
    option value="1994">1994</option>
    <
    option value="1993">1993</option>
    <
    option value="1992">1992</option>
    <
    option value="1991">1991</option>
    </
    select>
    </
    form>
    Ho bisogno che questi valori vengano aggiunti ad un database nella tabella 'utenti'. Precisamente nei campi 'username' e 'data_nascita' della tabella.
    Penso che sia necessario un'action al form che reindirizzi ad una pagina php oppure che serva una nuova funzione.
    In ogni caso il codice dovrebbe essere scritto in modo che i tre valori del form (birthday_day, birthday_month, birthday_year) risultino in un unico campo ('data_nascita'), che è di tipo date.

    Ad esempio, l'utente inserisce i seguenti valori nel form:
    Username: pincopallo
    birthday_day: 10
    birthday_month: gennaio
    birthday_year: 1994

    All'invio del modulo nel database vengono aggiunti nella tabella 'utenti'
    nel campo username: 'pincopallo'
    e nel campo data_nascita: 10/01/1994

    Vorrei inoltre che nel form stesso vi sia una funzione per controllare se lo username inserito nel form sia già esistente.
    Ad esempio, nello stesso form di prima, può risultare che nel database, nel campo username della tabella 'utenti' esista già un valore 'pincopallo'. In tal caso la registrazione non può essere completata.


    Grazie per l'aiuto, buon finesettimana
    Ultima modifica di kennedyconnect : 26-03-2011 alle ore 14.53.59

  2. #2
    palla000 non è connesso Utente attivo
    Data registrazione
    12-07-2008
    Residenza
    trieste
    Messaggi
    278

    Predefinito

    prova a fare così. Fammi sapere se non ti funziona
    Codice PHP:
    <?php

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

    $connessione = mysql_connect("localhost", "kennedyconnect", "");
    if(!
    mysql_select_db($connessione, "my_kennedyconnect"))
    die(
    "Errore nella connessione al database");

    $username = $_POST['username'];
    $giorno = $_POST['birthday_day'];
    $mese = $_POST['birthday_month'];
    $anno = $_POST['birthday_year'];

    $sql = "SELECT username FROM utenti WHERE username = '".$username."' LIMIT 1";
    $q = mysql_query($sql);
    $righe = mysql_num_rows($q);

    if(
    $righe == 1) {
    die(
    "Username già esistente!");
    } else {
    $sql2 = "INSERT INTO utenti(username, data_nascita) VALUES('".$username."', '".$giorno."/".$mese."/".$anno"')";
    if(!
    mysql_query($sql2)
    die(
    "Errore nell'inserimento dei dati");
    }

    } else {

    ?>


    <form method="post" action="">

    Username:
    <input type="text" name="username" id="username">

    Data di nascita:
    <select name="birthday_day" id="birthday_day">
    <option value="-1">Giorno:</option>
    <option value="01">1</option>
    <option value="02">2</option>
    <option value="03">3</option>
    <option value="04">4</option>
    <option value="05">5</option>
    <option value="06">6</option>
    <option value="07">7</option>
    <option value="08">8</option>
    <option value="09">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select>

    <select class="" id="birthday_month" name="birthday_month">
    <option value="-1">Mese:</option>
    <option value="01">gennaio</option>
    <option value="02">febbraio</option>
    <option value="03">marzo</option>
    <option value="04">aprile</option>
    <option value="05">maggio</option>
    <option value="06">giugno</option>
    <option value="07">luglio</option>
    <option value="08">agosto</option>
    <option value="09">settembre</option>
    <option value="10">ottobre</option>
    <option value="11">novembre</option>
    <option value="12">dicembre</option>
    </select>

    <select name="birthday_year" id="birthday_year">
    <option value="-1">Anno:</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    </select>
    <input type="submit" name="invia">
    </form>

    <?php

    }

    ?>
    Ultima modifica di palla000 : 27-03-2011 alle ore 13.29.49

  3. #3
    Guest

    Predefinito

    Ciao palla, grazie per l'interessamento. Proverò il codice appena torno a casa. In ogni caso, in un'occhiata veloce se non sbaglio i tre valori della data (birthday_day, birthday_month, birthday_year) non vengano uniti primi di essere aggiunti al database.
    Potresti confermarmelo? Grazie e buona domenica

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Cosa significa "uniti"?...

    Con questo:

    Codice PHP:
    "INSERT INTO utenti(username, data_nascita) VALUES('".$username."', '".$giorno."/".$mese."/".$anno"')"
    Come username viene salvato $username (ovvero, username del form); in data_di_nascita viene salvato in formato: giorno/mese/anno (tutto attaccato: è un unico dato...)... quindi come mi pare hai richiesto.

    Ciao!
    Ultima modifica di alemoppo : 27-03-2011 alle ore 15.52.03

  5. #5
    Guest

    Predefinito

    Esattamente!
    Come posso inserirlo nel codice di palla?
    Grazie

  6. #6
    palla000 non è connesso Utente attivo
    Data registrazione
    12-07-2008
    Residenza
    trieste
    Messaggi
    278

    Predefinito

    nella fase dell'inserimento dei dati nel database, come ha detto alemoppo, i tre campi vengono uniti quindi ti dovrebbe venire giorno/mese/anno in un unico campo della tabella

  7. #7
    Guest

    Predefinito

    Ah, non avevo letto quella stringa!
    Scusami e buona serata!
    (ti faccio sapere al più presto!)

  8. #8
    Guest

    Predefinito

    Dreamweaver mi restituisce un errore qui

    Codice PHP:
    $sql2 = "INSERT INTO utenti(username, data_nascita) VALUES('".$username."', '".$giorno."/".$mese."/".$anno"')";
    e qui

    Codice PHP:
    die("Errore nell'inserimento dei dati");
    Buon fine settimana!

  9. #9
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Prova così:
    Codice PHP:
    $sql2 = "INSERT INTO utenti(username, data_nascita) VALUES('".$username."', '".$giorno."/".$mese."/".$anno."')";
    Ultima modifica di andreafallico : 03-04-2011 alle ore 16.01.53

  10. #10
    Guest

    Predefinito

    Ok per il primo dovrebbe essere risolto..
    Cosa non va nel die?
    Grazie

    EDIT: ok mancava una parentesi poco più sopra!
    Ultima modifica di kennedyconnect : 03-04-2011 alle ore 16.41.50

  11. #11
    Guest

    Predefinito

    Il codice mi restituisce sempre 'Errore nell'inserimento dei dati'. Come faccio?

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Prova a stampare mysql_error() per vedere cosa non va.

    Ciao!

  13. #13
    Guest

    Predefinito

    Che stringa dovrei aggiungere esattamente? Scusami ma non sono ferrato, grazie per la pazienza. Buona serata

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    sostituisci:

    Codice PHP:
    if(!mysql_query($sql2)
    die(
    "Errore nell'inserimento dei dati");
    }
    Con:

    Codice PHP:
    if(!mysql_query($sql2)
    echo
    "Errore nell'inserimento dei dati";
    }
    echo
    mysql_error();
    ..in questo modo, vedi l'errore della query e vedi cosa non va...

    Ciao!

  15. #15
    Guest

    Predefinito

    Non l'ho sostituito esattamente come hai detto tu,
    ma mi riporta comunque questo errore:
    "No database selected"

    L'ho reso così:


    Codice PHP:
    <?php

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

    $connessione = mysql_connect("localhost", "kennedyconnect", "miapassword");
    if(!
    mysql_select_db($connessione, "my_kennedyconnect"))
    echo
    mysql_error();

    $email = $_POST['email'];
    $giorno = $_POST['birthday_day'];
    $mese = $_POST['birthday_month'];
    $anno = $_POST['birthday_year'];

    $sql = "SELECT email FROM students WHERE email = '".$email."' LIMIT 1";
    $q = mysql_query($sql);
    $righe = mysql_num_rows($q);

    if(
    $righe == 1) {
    die(
    "Email già esistente!");
    } else {

    $sql2 = "INSERT INTO utenti(email, dob) VALUES('".$email."', '".$giorno."/".$mese."/".$anno."')";

    if(!
    mysql_query($sql2))
    echo
    mysql_error();
    }

    } else {
    ?>
    Ultima modifica di kennedyconnect : 26-04-2011 alle ore 21.01.32

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    ..infatti non hai selezionato correttamente il database:
    Codice PHP:
    if(!mysql_select_db($connessione, "my_kennedyconnect"))
    ..hai invertito i parametri... Strano che l'altra volta funzionava; ma nei parametri della mysql_select_db() prima va il nome del database, poi il riferimento alla connessione (opzionale)...

    Ciao!
    Ultima modifica di alemoppo : 26-04-2011 alle ore 21.43.37

  17. #17
    Guest

    Predefinito

    Potresti scrivermi il codice da sostituire quindi? Grazie :)

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    prova a sostituire:

    Codice PHP:
    if(!mysql_select_db($connessione, "my_kennedyconnect"))
    Con:


    Codice PHP:
    if(!mysql_select_db("my_kennedyconnect",$connessione))
    Ciao!

  19. #19
    Guest

    Predefinito

    Risolto, non so come ringraziarti!
    L'unica cosa che non mi torna è che mi si ripresenta l'errore 'Errore nell'inserimento dei dati' anche se effettivamente i dati vengono aggiunti al database.. È possibile aggiungere un messaggio di successo nella registrazione!
    Buona continuazione

    Edit: riguardando con attenzione mi sono accorto che la data di nascita non è inserita correttamente nel database. Forse è per il fatto che il campo 'dob' (date of birth) è di tipo date e non di tipo text o varchar?

    Questo è il codice finale (ignora tutti i miei post sopra, perché ho cambiato un paio di nomi dei campi)
    Codice PHP:
    <?php

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

    $connessione = mysql_connect("localhost", "kennedyconnect", "miapassword");
    if(!
    mysql_select_db("my_kennedyconnect", $connessione))
    echo
    mysql_error();

    $email = $_POST['email'];
    $giorno = $_POST['birthday_day'];
    $mese = $_POST['birthday_month'];
    $anno = $_POST['birthday_year'];

    $sql = "SELECT email FROM students WHERE email = '".$email."' LIMIT 1";
    $q = mysql_query($sql);
    $righe = mysql_num_rows($q);

    **if(
    $righe == 1) {
    **die(
    "Email già esistente!");
    **} else {

    ** * *
    $sql2 = "INSERT INTO students(email, dob) VALUES('".$email."', '".$giorno."/".$mese."/".$anno."')";

    ** *if(!
    mysql_query($sql2))
    * echo
    mysql_error();
    ** *die(
    "Errore nell'inserimento dei dati");
    **}
    **
    } else {
    ?>

    <form method="post" action="">

    Email:
    <input type="text" name="email" id="email">

    Data di nascita:
    <select name="birthday_day" id="birthday_day">
    <option value="-1">Giorno:</option>
    <option value="01">1</option>*
    <option value="02">2</option>*
    <option value="03">3</option>*
    <option value="04">4</option>*
    <option value="05">5</option>*
    <option value="06">6</option>*
    <option value="07">7</option>*
    <option value="08">8</option>*
    <option value="09">9</option>*
    <option value="10">10</option>*
    <option value="11">11</option>*
    <option value="12">12</option>*
    <option value="13">13</option>*
    <option value="14">14</option>*
    <option value="15">15</option>*
    <option value="16">16</option>*
    <option value="17">17</option>*
    <option value="18">18</option>*
    <option value="19">19</option>*
    <option value="20">20</option>*
    <option value="21">21</option>*
    <option value="22">22</option>*
    <option value="23">23</option>*
    <option value="24">24</option>*
    <option value="25">25</option>*
    <option value="26">26</option>*
    <option value="27">27</option>*
    <option value="28">28</option>*
    <option value="29">29</option>*
    <option value="30">30</option>*
    <option value="31">31</option>*
    </select>*

    <select class="" id="birthday_month" name="birthday_month">
    <option value="-1">Mese:</option>
    <option value="01">gennaio</option>*
    <option value="02">febbraio</option>*
    <option value="03">marzo</option>*
    <option value="04">aprile</option>*
    <option value="05">maggio</option>*
    <option value="06">giugno</option>*
    <option value="07">luglio</option>*
    <option value="08">agosto</option>*
    <option value="09">settembre</option>*
    <option value="10">ottobre</option>*
    <option value="11">novembre</option>*
    <option value="12">dicembre</option>*
    </select>*

    <select name="birthday_year" id="birthday_year">
    <option value="-1">Anno:</option>
    <option value="1997">1997</option>*
    <option value="1996">1996</option>*
    <option value="1995">1995</option>*
    <option value="1994">1994</option>*
    <option value="1993">1993</option>*
    <option value="1992">1992</option>*
    <option value="1991">1991</option>
    </select>
    <input type="submit" name="invia">
    </form> *

    <?php

    }

    ?>
    -----------

    Risolto tutto, vi ringrazio di nuovo tutti.
    Si può chiudere
    Ultima modifica di andreafallico : 27-04-2011 alle ore 16.06.34

Regole di scrittura

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