Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Update sql

  1. #1

    Update sql

    Ciao a tutti riscontro un problema nell'aggiornare dei dati di una tabella, solo però quando cambio l' ACTION ..

    Codice in unica soluzione FUNZIONANTE:



    <form action="" method="POST">
    <label>Autore:</label>

    <input type="text" name="autore" value="<?php echo $row[autore] ?>" />


    <label>Titolo:</label>

    <input type="text" name="titolo" value="<?php echo $row[titolo] ?>"/>


    <label>Messaggio:</label>

    <textarea id="messaggio" name="messaggio" style="width:800px;height:200px;"><?php echo $row[messaggio] ?>
    </textarea>



    <input type="submit" name="invia" value="Modifica comunicato"/>
    </form>

    <?php

    if (isset ($_POST['invia'])) {
    $row[autore] = $_POST['autore'];
    $row[titolo] = $_POST['titolo'];
    $row[messaggio] = $_POST['messaggio'];
    $sql = ("UPDATE comunicati SET autore='$_POST[autore]', titolo='$_POST[titolo]', messaggio='$_POST[messaggio]' WHERE id={$_GET['id']}");
    if (!mysql_query($sql,$db))
    {
    die('Errore inserimento:' . mysql_error());
    }
    echo "Comunicato modificato";
    mysql_close($db);
    }

    ?>

    Lo stesso codice se dovessi dividerlo in due pagine con ACTION="modifica.php" non funziona rilevandomi problemi di errori sintassi sql ..

    Cosa dovrei fare ?

  2. #2

    Re: Update sql

    Originariamente inviato da domenico1984
    Ciao a tutti riscontro un problema nell'aggiornare dei dati di una tabella, solo però quando cambio l' ACTION ..

    Codice in unica soluzione FUNZIONANTE:



    <form action="" method="POST">
    <label>Autore:</label>

    <input type="text" name="autore" value="<?php echo $row[autore] ?>" />


    <label>Titolo:</label>

    <input type="text" name="titolo" value="<?php echo $row[titolo] ?>"/>


    <label>Messaggio:</label>

    <textarea id="messaggio" name="messaggio" style="width:800px;height:200px;"><?php echo $row[messaggio] ?>
    </textarea>



    <input type="submit" name="invia" value="Modifica comunicato"/>
    </form>

    <?php

    if (isset ($_POST['invia'])) {
    $row[autore] = $_POST['autore'];
    $row[titolo] = $_POST['titolo'];
    $row[messaggio] = $_POST['messaggio'];
    $sql = ("UPDATE comunicati SET autore='$_POST[autore]', titolo='$_POST[titolo]', messaggio='$_POST[messaggio]' WHERE id={$_GET['id']}");
    if (!mysql_query($sql,$db))
    {
    die('Errore inserimento:' . mysql_error());
    }
    echo "Comunicato modificato";
    mysql_close($db);
    }

    ?>

    Lo stesso codice se dovessi dividerlo in due pagine con ACTION="modifica.php" non funziona rilevandomi problemi di errori sintassi sql ..

    Cosa dovrei fare ?
    Posta anche il file modifica.php e gli errori di sintassi che ti da'...

  3. #3
    Codice del form:

    <form action="modifica.php" method="POST">
    <label>Autore:</label>

    <input type="text" name="autore" value="<?php echo $row[autore] ?>" />


    <label>Titolo:</label>

    <input type="text" name="titolo" value="<?php echo $row[titolo] ?>"/>


    <label>Messaggio:</label>

    <textarea id="messaggio" name="messaggio" style="width:800px;height:200px;"><?php echo $row[messaggio] ?>
    </textarea>



    <input type="submit" name="invia" value="Modifica comunicato"/>
    </form>

    Codice modifica.php:
    <?php

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

    $row[autore] = $_POST['autore'];
    $row[titolo] = $_POST['titolo'];
    $row[messaggio] = $_POST['messaggio'];

    $sql = ("UPDATE comunicati SET autore='$_POST[autore]', titolo='$_POST[titolo]', messaggio='$_POST[messaggio]' WHERE id={$_GET['id']}");
    if (!mysql_query($sql,$db))
    {
    die('Errore inserimento:' . mysql_error());
    }
    echo "Comunicato modificato";
    mysql_close($db);
    }

    ?>


    Errore :
    Errore inserimento:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    Che fò ?

  4. #4
    Quando capita a me non faccio altro che stamparmi a video la query che cerco di eseguire sul db, in questo modo capisco di cosa si tratta.

    Ovviamente la stampo prima del DIE oppure dentro al DIE al posto di mysql_error();

    Il più delle volte è un piccolo errore di distrazione!

  5. #5
    Prova a fare così (che a mio parere è più pulito):
    Codice PHP:
    $sql "UPDATE comunicati SET autore = '".$_POST[autore]."', titolo = '".$_POST[titolo]."', messaggio = '".$_POST[messaggio]."' WHERE id = '".$_GET["id"]."'"
    l'errore probabilmente te lo da per via del GET che se vai in action in un'altra pagina non rimane quindi o te lo salvi in $_SESSION["get"]; (e quindi devi anche modificare la query mettendo al posto di GET SESSION) e provi a vedere se funzia oppure vediamo cosa fare

  6. #6
    Ragazzi ho risolto, cmq grazie per l'aiuto!!
    steave67 hai ragione, perdevo l'id , quindi ho risolto in altro modo; vi posto il codice affinché possa essere utile ad altri risolvere il mio stesso problema:

    <form action="remodcom.php" method="POST">
    <label>Autore:</label>

    <input type="text" name="autore" value="<?php echo $row[autore] ?>" />


    <label>Titolo:</label>

    <input type="text" name="titolo" value="<?php echo $row[titolo] ?>"/>


    <label>Messaggio:</label>

    <textarea id="messaggio" name="messaggio" style="width:800px;height:200px;"><?php echo $row[messaggio] ?>
    </textarea>


    <input type="hidden" name="id" value="<?php echo $id ?>" /> <---------RISOLTO
    <input type="submit" name="invia" value="Modifica comunicato"/>
    </form>

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.