Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21

    Form inserimento dati su db

    Ho compilato una pagina per l'inserimento di libri (per provare) e l'altra per la visione di quanto inserito compreso l'ultimo id. Bene, dopo l'inserimento e l'invio, mi compare regolarmente la pagina con i dati del libro inserito, ma l'id resta 0 e se apro la pagina contenente tutti i libri sul db non mi esce quello inserito.
    Questa è la pagina che uso per l'inserimento:
    <?php
    $titolo = $_POST["titolo"];
    $autore = $_POST ["autore"];
    $prezzo = $_POST["prezzo"];
    $descr = $_POST["descr"];
    if($titolo=="")
    {
    print ("Il titolo è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ");
    }
    elseif($autore=="")
    {
    print ("l'autore è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ");
    }
    elseif($prezzo=="")
    {
    print "Il prezzo è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ";
    print "Titolo: $titolo
    ";
    print "Prezzo: $prezzo
    ";
    }
    else
    {
    $host="xxx";
    $user="xxx";
    $pass="xxx";
    mysql_connect($host,$user,$pass) or die ("non riesco a connettermi");
    mysql_select_db("corso") or die ("Non riesco a selezionare il database");
    mysql_query("insert into libri (lib_tit, lib_aut, lib_prezzo, lib_descr) values ('$titolo','$autore','$prezzo','$descr')");
    $ultimo_id=mysql_insert_id();
    mysql_close();
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">

    <head>
    <title>
    Scheda inserimento dati
    </title>
    <link rel="stylesheet" type="text/css" href="../index/schede.css" />
    </head>
    <body>
    <div id="testata">

    <span id="titolo">My Sito</span>

    </div>
    <div id="corpo">
    <div id="corpodes">
    <div class="capo">
    Menu di navigazione
    </div>




    <div class="menu1">
    Home Page
    </div>




    <div class="menu1">
    <form name="info" method="post" action="05_cerca.php">
    <input type="text" name="cerca">
    <input type="submit" value="cerca">
    </form>
    </div>
    <div class="descri">
    Per effettuare una ricerca nel database
    </div>




    <div class="menu1">
    Inserisci libri
    </div>
    <div class="descri">
    Inserire nuovi testi
    </div>
    </div>
    <div id="princip">
    <div class="articolo">
    CONFERMA INSERIMENTO LIBRO
    </div>
    <div class="testo">
    <table align="center">
    <tr>
    <td> <?php
    echo "Record inserito:
    ";
    echo "Titolo: $titolo
    ";
    echo "Prezzo: $prezzo
    ";
    echo "Autore: $autore
    ";
    echo "descrizione: $descr
    ";
    echo "Ultimo id inserito: $ultimo_id
    ";
    ?>






    visualizza tutti i libri
    </td>
    </tr>
    </table>
    </div>
    <div class="articolo">

    </div>
    </div>
    <div id="piede">

    <div class="credits">
    2009
    </div>
    </div>
    </body>
    </html>

    Aggiungo che gli altri form di modifica o elimina i dati funzionano regolarmente. Il problema resta solo quello dell'inserimento.
    E' un problema del codice PHP?
    Grazie

  2. #2
    uhm, l'id da te descritto dovrebbe essere una sorta di campo automatico... sul database sei sicuro di averlo messo come campo auto-increment?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21
    Si, è autoincrement.

  4. #4
    sul database il campo id ha i valori giusti?

  5. #5
    ad ogni modo penso che sia questo codice usato male:

    mysql_insert_id();
    http://it2.php.net/mysql_insert_id

    se vuoi visualizzare l'ultimo id inserito fai una select per id decrescente e prendi solo la prima riga con LIMIT 0,1, mysql_insert_id() da guida di php.net ha un'altra funzione lol (o meglio dice altro)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21
    Impostazioni tabella libri:

    Campo Tipo Collation Attributi Null Predefinito Extra
    lib_id Int(4) unsigned No Nessuno auto_increment
    lib_aut varchar(255) utf8_general_ci No Nessuno
    lib_tit varchar(255) utf8_general_ci No Nessuno
    lib_prezzo Float(10,2) No 0.00
    lib_descr text utf8_general_ci Si Null


    Spero sia leggibile.

  7. #7
    Originariamente inviato da goikiu
    ad ogni modo penso che sia questo codice usato male:

    mysql_insert_id();
    http://it2.php.net/mysql_insert_id

    se vuoi visualizzare l'ultimo id inserito fai una select per id decrescente e prendi solo la prima riga con LIMIT 0,1, mysql_insert_id() da guida di php.net ha un'altra funzione lol (o meglio dice altro)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21
    Ho provato, ma non succede niente mi restituisce sempre id 0 dopo l'invio.

  9. #9
    riposta un'attimo il nuovo codice php che usi (solo quello php)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21
    <?php
    $host="xxx";
    $user="xxx";
    $pass="xxx";
    mysql_connect($host,$user,$pass) or die ("non riesco a connettermi");
    mysql_select_db("corso") or die ("Non riesco a selezionare il database");

    $titolo = $_POST["titolo"];
    $autore = $_POST ["autore"];
    $prezzo = $_POST["prezzo"];
    $descr = $_POST["descr"];
    if($titolo=="")
    {
    print ("Il titolo è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ");
    }
    elseif($autore=="")
    {
    print ("l'autore è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ");
    }
    elseif($prezzo=="")
    {
    print "Il prezzo è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>
    ";
    print "Titolo: $titolo
    ";
    print "Prezzo: $prezzo
    ";
    }
    else
    {
    mysql_query("insert into libri (lib_id, lib_tit, lib_prezzo, lib_aut, lib_descr) values (NULL,'$titolo','$prezzo','$autore','$descr')");
    $ultimo_id=mysql_insert_id();
    mysql_close();
    }
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.