Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    14

    problema: non modifica i record del db

    Sto seguendo un corso di html.it circa la manipolazione dei dati del database mediante form.. provo ad inserire e poi modificare le varie info: titolo, prezzo, etc.. ma alla fine il db rimane invariato... dove sbaglio? penso che il problema sia nella seguente pagina php:

    <?php
    $autore = $_POST["autore"];
    $titolo = $_POST["titolo"];
    $prezzo = $_POST["prezzo"];
    $descrizione = $_POST["descrizione"];
    if($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>";
    }
    elseif($titolo=="")
    {
    print "Il titolo è obbligatorio
    <a href=\"02_forminse.php\">indietro</a>";
    print "Autore: $autore
    ";
    print "Titolo: $titolo
    ";
    print "Prezzo: $prezzo
    ";
    }
    else
    {
    include("mysql.php");
    mysql_query("update libri set lib_aut='$autore', lib_prezzo='$prezzo', lib_tit='$titolo', lib_desc='$descrizione' where lib_id=$id");
    mysql_close();
    ?>
    <html>
    <head>
    <title>update</title>
    </head>
    <body bgcolor="#99CCCC">
    <table width="750" bgcolor="#666666" align="center" cellpadding="0" cellspacing="5" border="0">
    <tr>
    <td>
    <div align="center"><h1><font color="#FFFFFF">CONTROLLA MODIFICHE</font></h1></div>


    </td>
    </tr>
    </table>


    <table width="750" bgcolor="#FFFFCC" align="center" cellpadding="0" cellspacing="5" border="0">
    <tr>
    <td>
    <?php
    echo "Record modificato:
    ";
    echo "Autore: $autore
    ";
    echo "Prezzo: $prezzo
    ";
    echo "Titolo: $titolo
    ";
    echo "Descrizione: $descrizione
    ";
    ?>


    vai all'elenco completo dei libri
    </td>
    </tr>
    </table>
    </body>
    </html>
    <?php
    }
    ?>

    ringrazio anticipatamente...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    fai:

    mysql_query("update libri set lib_aut='$autore', lib_prezzo='$prezzo', lib_tit='$titolo', lib_desc='$descrizione' where lib_id=$id") or die(mysql_error());

    e dicci l'errore che ti appare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    14
    ecco il messaggio:
    Errore di sintassi nella query SQL vicino a '' linea 1

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    sostituisci con:

    mysql_query("update libri set lib_aut='$autore', lib_prezzo='$prezzo', lib_tit='$titolo', lib_desc='$descrizione' where lib_id='$id';") or die(mysql_error());

    p.s. il campo $id sei sicuro che lo prelevi da qualche parte?

  5. #5
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    come lo passi questo?:
    Codice PHP:
    where lib_id=$id"); 
    controlla come lo stai passando.
    ¿Hasta la pasta?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    14
    allora il valore della var $id viene passato col metodo get dalla seguente pagina:

    <html>
    <head>
    <title>Modifica php</title>
    </head>
    <body bgcolor="#99CCCC">
    <table width="750" bgcolor="#666666" align="center" cellpadding="0" cellspacing="5" border="0">
    <tr>
    <td>
    <div align="center"><h1><font color="#FFFFFF">MODIFICA I RECORD</font></h1></div>


    </td>
    </tr>
    </table>


    <table width="750" bgcolor="#FFFFCC" align="center" cellpadding="0" cellspacing="5" border="0">
    <tr>
    <td>
    <form name="info" action="08_mod.php" method="post">
    <?php
    $id = $_GET["id"];
    include("mysql.php");
    $dati = mysql_query("select * from libri where lib_id = $id ");
    $array = mysql_fetch_array($dati);
    echo "<input type=\"hidden\" name=\"id\" value=\"$id\">";
    echo "<input type=\"text\" name=\"titolo\" value=\"$array[lib_tit]\">Titolo
    ";
    echo "<input type=\"text\" name=\"autore\" value=\"$array[lib_aut]\">Autore
    ";
    echo "<input type=\"text\" name=\"prezzo\" value=\"$array[lib_prezzo]\">Prezzo
    ";
    echo "<input type=\"textarea\" name=\"descrizione\" value=\"$array[lib_desc]\">Descrizione
    ";
    mysql_close();
    ?>
    <input type="submit" value="invia">
    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>

  7. #7
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    domanda= perche' usi $array?
    perche non fai con un ciclo while?
    in ogni input gli dai il value.
    ¿Hasta la pasta?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    21
    Togli quel pezzo di codice dopo </html> :

    <?php
    }
    ?>

    ed inserisci la graffa dopo la chiusura mysql_close();
    }
    ?>

    dovrebbe funzionare.
    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    14
    Ho provato a fare come hai detto tu, ma niente. Il db non si aggiorna anche se non vedo messaggi di errore.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    14
    Ho trovato...!! in pratica mancava la seguente stringa: $id=$_POST["id"];

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 © 2024 vBulletin Solutions, Inc. All rights reserved.