Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Update da form

  1. #1

    Update da form

    Ciao a tutti,

    sto cercando di realizzare delle pagine per gestire degli upload e download di documenti da un sito.
    Non riesco però a concludere il tutto facendo l'update dei dati del database attraverso un form.

    La pagina scegli_record.php consente di scegliere un record da modificare, questo è il codice, :

    Codice PHP:
    <?php 

    // CONNESSIONE AL MYSQL 
    @mysql_connect("localhost""ioio""ioio") or die("Connessione fallita !"); 

    // SELEZIONE DATABASE 
    @mysql_select_db("miodatabase") or die("Selezione Database fallita !"); 

    //IMPOSTO ED ESEGUO LA QUERY 
    $query "SELECT * FROM documenti"
    $select = @mysql_query($query) or die("Query fallita !"); 

    echo 
    "<div align=\"left\"><table border=\"1\">"

    while(
    $result = @mysql_fetch_array($select))  

    if(
    $result["Data"]) echo "<tr>\n <td> . $result["Data"]"
    if(
    $result["Titolo"]) echo "</td>\n <td> . $result["Titolo"]"

    if(
    $result["Descrizione"]) echo "</td>\n . $result["Descrizione"]"
    if(
    $result["Nome"]) echo "</td>\n <td> . $result["Nome"]"
    echo 
    "</td>\n <td align=\"center\"> <a href=\"modifica.php?Id=" $result["Id"] . "\" target=\"_blank\">modifica</a></td>\n"


    echo 
    "</table>\n</div>\n"

    // CHIUDO LA CONNESSIONE A MYSQL 
    @mysql_close(); 

    ?>
    Questa pagina (scegli_record.php) funziona, infatti mi apre il form del record corrispondente all'Id passato, con i dati da modificare inseriti nei campi input text. La pagina si chiama modifica.php ecco il codice:
    Codice PHP:
    <?php

    if(!isset($_GET)) $_GET $HTTP_GET_VARS;

    if(
    $_GET["Id"] && is_numeric($_GET["Id"]))
    {

    // CONNESSIONE AL MYSQL
    @mysql_connect("localhost""ioio""ioio") or die("Connessione fallita !");

    // SELEZIONE DATABASE
    @mysql_select_db("miodatabase") or die("Selezione Database fallita !");

    $query "SELECT Data, Titolo, Descrizione, Nome FROM documenti WHERE Id = '" $_GET["Id"] . "'";
    $select = @mysql_query($query) or die("Query fallita !");

    $result = @mysql_fetch_array($select);

    $Data $result["Data"];
    $Titolo $result["Titolo"];
    $Descrizione $result["Descrizione"];
    $Nome $result["Nome"];

    }

    echo 
    "<html>
    <head>
    <title>Form per la modifica</title>
    </head>
    <body>
    <div align=\"center\">
    <table>
    <form action=\"esegui.php\" method=\"POST\">
    <tr>
    <td valign=\"top\">Data</td>
    <td><input type=\"text\" name=\"Data\" value=\"
    $Data\"></td>
    </tr>
    <tr>
    <td valign=\"top\">Titolo</td>
    <td><input type=\"text\" name=\"Titolo\" value=\"
    $Titolo\"></td>
    </tr>
    <tr>
    <td valign=\"top\">Descrizione</td>
    <td><input type=\"text\" name=\"Descrizione\" value=\"
    $Descrizione\"></td>
    </tr>
    <tr>
    <td valign=\"top\">Nome</td>
    <td><input type=\"text\" name=\"Nome\" value=\"
    $Nome\"></td>
    <td><input name=\"Id\" type=\"hidden\" value=\"<?=
    $id;?>\"></td>
    </tr>
     
    <tr>
    <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\">
    <input type=\"submit\" value=\"Esegui update\" name=\"invia\"></td>
    </tr>
    </form>
    </table>
    </div>
    </body>
    </html>
    "
    ;

    // CHIUDO LA CONNESSIONE
    @mysql_close();

    ?>
    Il Form modifica.php richiama esegui.php che ha il compito di eseguire l'update dei dati sul database.
    Ecco il codice:
    Codice PHP:
    <?php
    if(!isset($_POST)) $_POST $HTTP_POST_VARS;

    if(isset(
    $_POST['invia']) && $_POST['invia'] != 0)
    {

    // CONNESSIONE AL MYSQL
    @mysql_connect("localhost""ioio""ioio") or die("Connessione fallita !");

    // SELEZIONE DATABASE
    @mysql_select_db("miodatabase") or die("Selezione Database fallita !");

    // ESEGUIAMO LA QUERY DI INSERIMENTO
    $result = @mysql_query("UPDATE documenti SET Data='"$_POST["Data"]"', Titolo='"$_POST["Titolo"]"', Descrizione='"$_POST["Descrizione"]"' WHERE Id = '"$_POST["Id"]"'");

    or die(
    "Query di inserimento fallita !");

    // ESITO POSITIVO
    echo " I dati sono stati aggiornati";

    // CHIUDIAMO LA CONNESSIONE A MYSQL
    @mysql_close();
    }
    ?>
    Sono un principiante del php e il consiglio che chiedo è: come faccio a far capire alla pagina esegui.php che deve fare l'update di quel record che ho modificato nel form modifica.php ?

    Io ho provato a passare l'Id, ma credo di aver fatto danni perchè ho copiato da altri thread senza capire bene la cosa.

    Grazie comunque.
    Ciao
    roberto

  2. #2

  3. #3
    Non ho letto tutto. La query dell'update dovresti farla nel seguente modo:
    codice:
    $result = @mysql_query("UPDATE documenti SET
                            Data = '{$_POST['Data']}',
                            Titolo = '{$_POST['Titolo']}',
                            Descrizione = '{$_POST['Descrizione']}'
                            WHERE Id = '{$_POST['Id']}'")
                            or die("Query di inserimento fallita !". mysql_error() );

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Ti ringrazio piero.mac
    adesso ci provo e ti faccio sapere.

    Ciao. :maLOL:
    roberto

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.