+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Errore di inserimento dati in Mysql

  1. #1
    marco_532 non è in linea Scolaretto
    Post
    120

    Errore di inserimento dati in Mysql

    Salve ragazzi ho un problema con php e mysql che non riesco a superare.

    Inviando dati tramite form ricevo il messaggio di conferma di avvenuto inserimento nel database, ma in realtà nel database i viene compilato solo il campo "id INT(6) auto-increment".

    Se invece inserisco dati direttamente da mysql funziona tutto.

    Sono ancora alle prime armi con php e mysq....pls datemi un aiuto!!!!

    Ciao Marco.

  2. #2
    L'avatar di albertonissa
    albertonissa non è in linea Topo di biblioteca
    Luogo
    Caltanissetta
    Post
    2,148
    beh se non posti la parte di codice incriminata sara' abbastanza difficile

  3. #3
    marco_532 non è in linea Scolaretto
    Post
    120

    Codice pseudo incriminato :

    Ciao alberto, i codici che ho usato sono :


    In "inserisci.html" :

    <form name="form_ins" method="post" action="ins.php" enctype="multipart/form-data">
    <input type="text" name="ut_id_mod" size="24" maxlength="16">
    <input type="password" name="ut_pwd_mod" size="10" maxlength="10">
    <input type="submit" name="Submit" value="Inserisci">

    In "ins.php" :

    include ("conn.php");
    $sql = "insert into $tabella values ('', '$ut_id_mod', '', '$ut_pwd_mod', '')";
    $query = mysql_query($sql, $connessione) or die (errore());
    echo <<<EOD
    <html>
    <head>
    <title>Inserimento eseguito</title>
    </head>
    <body>
    <h1 align="center">Nuovi dati inseriti correttamente</h1>
    <table whidth="80%" cellspacing="0" cellpadding="3" align="center">
    <tr>
    <td>
    <p>Hai inserito questi dati:</p>
    <table width="96%" border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td>Nome utente</td>
    <td>:</td>
    <td>$ut_id_mod</td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td>$ut_pwd_mod</td>
    </tr>
    </table>
    <p><a href="inserisci.htm">Inserisci altri dati</a></p>
    <p><a href="1.php">Verifica.</a></p>
    </td>
    </tr>
    </table>
    </body>
    </html>
    EOD;
    mysql_close($connessione) or die (errore());
    ----------------------------------------------

    Ciao, Marco.

  4. #4
    Post
    4,741
    Blogs
    12
    Bene,
    ma le variabili dove vengono recuperate ?

    Codice PHP:
    <?php
    $ut_id_mod 
    $_POST["ut_id_mod"];
    ...
    ?>
    E poi penserai di eseguire la query.

    E magari prima di eseguirla, consiglio un piccolo DEBUG:

    Codice PHP:
    <?php
    echo $sql;
    if(
    mysql_query($sql)){
        echo 
    "OK";
    }else{
       echo 
    mysql_error();
    }
    ?>
    Marco, consiglio vivamente l'acquisto di ottimo manuale sul PHP, piu' che alle prime armi, direi proprio che stai ignorando tanti punti importanti.

    A presto,
    Giuseppe Leone

  5. #5
    marco_532 non è in linea Scolaretto
    Post
    120
    Grazie Master per la risposta.
    Per la costruzione di queste pagine sto usando un manualino che a quanto pare &#232; meglio buttare.

    Per quanto riguarda il debug avevo gi&#224; inserito il codice, ma per il recupero delle variabili, il mauale non fa nessun accenno.

    Ora ti posto il codice completo di tutte le pagine, magari puoi dirmi qualcosa di pi&#249;.

    -------------------
    PAGINA PER L'INSERIMENTO DATI :"inserisci.htm"

    <html>
    <head>
    <title>Inserimento dati.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>

    <body>
    <? include ("conn.php") ?>
    <h1>Inserimento dati :</h1>
    <form name="form_ins" method="post" action="ins.php" enctype="multipart/form-data">
    <table width="80%" cellspacing="0" cellpadding="3" align="center">
    <tr>
    <td>Nome Utente</td>
    <td><input type="text" name="ut_id_mod" size="24" maxlength="16"></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><input type="password" name="ut_pwd_mod" size="10" maxlength="10"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="Inserisci"></td>
    </tr>
    </table>
    </form>
    <a href="aut_script.htm">LOGIN</a>
    </body>
    </html>

    CONNESSIONE :"conn.php"

    <html>
    <head>
    <title>Documento senza titolo</title>
    </head>

    <body>
    <?php
    $server = 'localhost';
    $utente = 'root';
    $password = 'my_pwd';
    $database = 'my_db';
    $tabella = 'my_tb';

    function errore()
    {
    echo "Errore di connessione nel database.<br />
    Tipo errore:";
    echo mysql_error();
    }

    $connessione = mysql_connect($server, $utente, $password) or die (errore());
    $db = mysql_select_db($database, $connessione) or die (errore());
    ?>
    </body>
    </html>

    PAGINA X ACTION :"ins.php"

    <?
    include ("conn.php");

    $ut_id_mod = $_POST["ut_id_mod"];
    $ut_pwd_mod = $_POST["ut_pwd_mod"];

    $sql = "insert into $tabella values ('', '$ut_id_mod', '', '', '$ut_pwd_mod'')";
    $query = mysql_query($sql, $connessione) or die (errore());
    echo <<<EOD
    <html>
    <head>
    <title>Inserimento eseguito</title>
    </head>

    <body>
    <h1 align="center">Nuovi dati inseriti correttamente</h1>
    <table whidth="80%" cellspacing="0" cellpadding="3" align="center">
    <tr>
    <td>
    <p>Hai inserito questi dati:</p>
    <table width="96%" border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td>Nome utente</td>
    <td>:</td>
    <td>$ut_id_mod</td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td>$ut_pwd_mod</td>
    </tr>
    </table>
    <p><a href="inserisci.htm">Inserisci altri dati</a></p>
    <p><a href="1.php">Verifica.</a></p>
    </td>
    </tr>
    </table>
    </body>
    </html>
    EOD;

    mysql_close($connessione) or die (errore());
    ?>

    --------------------------------------------

    Ciao, Marco.
    Ultima modifica di marco_532; 05-02-2006 20:01 

  6. #6
    Post
    4,741
    Blogs
    12
    Uhm...
    Capisco, iniziamo col chiarire qualche concetto (ovviamente quando acquisterai un buon manuale ed inizierai a consultare l'ufficiale su http://www.php.net, tutto sembrera' piu' chiaro):

    Anziche' scrivere:

    Codice PHP:
    ...
    $sql "insert into $tabella values ('', '$ut_id_mod', '', '', '$ut_pwd_mod'')";
    $query mysql_query($sql$connessione) or die (errore());
    ... 
    Scrivi:

    Codice PHP:
    $sql "INSERT INTO myTable (ID_Filed, Name_Field, Password_Field) VALUES ('', '$myVar1', '$myVar2')" 
    Ovviamente ho usato dei nomi di esempio, dovrai adattarlo alle tue esigenze.
    Come puoi vedere ho specificato quali campi della tabella andro' ad inserire.

    Inoltre:

    Codice PHP:
    $query mysql_query($sql$connessione) or die (errore()); 
    Non ha senso... La query INSERT, in questione non dovra' gestire dei risultati e di conseguenza non avra' un oggetto di riferimento, $query, ma semplicemente:

    Codice PHP:
    if(mysql_query($sql$connessione)){
        echo 
    "Query eseguita correttamente !";
    }else{
        echo 
    mysql_error();

    Va semplicemente eseguita tramite la funzione mysql_query().

    Spero di essere stato chiaro,
    Giuseppe Leone

  7. #7
    marco_532 non è in linea Scolaretto
    Post
    120
    ok...grazie Master...ora funziona tutto bene ...

    Ciao alla prox., Marco.

  8. #8
    Post
    4,741
    Blogs
    12
    Quote Originariamente inviato da marco_532
    ok...grazie Master...ora funziona tutto bene ...

    Ciao alla prox., Marco.
    Riguardo al manuale, per iniziare ti posso consigliare quello di Apogeo - "PHP & MySQL", propone esempi pratici e di veloce apprendimento.
    Successivamente potrai passare a manuali piu' specifici.

    A presto,
    Giuseppe Leone

+ Rispondi al Thread

Discussioni simili

  1. Inserimento dati in database
    Da ben030 nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 24-03-2006, 11:02

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi