modifica record

ho un problemino con questo script per modificare un record di una tabella in pratica il form non mi visualizza il record estratto dalla tabella, da modificare, pero' se nel form scrivo qualcosa le modifiche vengono effettuate tranquillamente, il problema è che non vedo il testo da modificare ???

ecco lo script

<?php
include("config.inc.php");
include("connect.inc.php");

if($_POST && isset($_GET['id']))
{
   aggiorna_record();
}
elseif(isset($_GET['id']))
{
   mostra_record();
}
else
   mostra_lista();

function mostra_lista()
{
   // mostro un eventuale messaggio
   if(isset($_GET['msg']))
      echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

   // preparo la query
   $query = "SELECT id, titolo FROM news";

   // invio la query
   $result = mysql_query($query);
   
   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   echo '
   <table border="1">
      <tr>
         <th>Modifica la News</th>
         <th><a   href=menu.php>Pannello di controllo</a></th>
      </tr>';

   while ($row = mysql_fetch_assoc($result))
   {
      $nome = htmlspecialchars($row['titolo']);

      // preparo il link per la modifica dei dati del record
      $link = $_SERVER['PHP_SELF'] . '?id=' . $row['id'];

      echo "<tr>
            <td>$nome</td>
            <td><a href=\"$link\">modifica</a></td>
            </tr>";
                  

   }

   echo '</table>';


   // libero la memoria di PHP occupata dai record estratti con la SELECT
   mysql_free_result($result);

   // chiudo la connessione a MySQL
   mysql_close();
}

function aggiorna_record()
{
   // recupero i campi di tipo "stringa"
   $titolo      = trim($_POST['titolo']);
   $testo     = trim($_POST['testo']);
   $data = trim($_POST['data']);
   
   // verifico se devo eliminare gli slash inseriti automaticamente da PHP
   if(get_magic_quotes_gpc())
   {
      $titolo   =   stripslashes($titolo);
        $testo   =   stripslashes($testo);
        $data   =   stripslashes($data);
      
   }

   // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
       
      $titolo   =   mysql_real_escape_string($titolo);
        $testo   =   mysql_real_escape_string($testo);
        $data   =   mysql_real_escape_string($data);
   
   $id = intval($_GET['id']);

   // verifico la presenza dei campi obbligatori
//   if(!$nome)
//   {
//      $messaggio = urlencode("Non hai inserito il nome");
//      header("location: $_SERVER[PHP_SELF]?id=$id&msg=$messaggio");
//      exit;
//   }

   // preparo la query
   $query = "UPDATE news SET

        titolo           ='$titolo',
        testo            ='$testo',
        data             ='$data'
      WHERE id         = $id";

   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   // chiudo la connessione a MySQL
   mysql_close();

   $messaggio = urlencode('Aggiornamento effettuato con successo');
   header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
}

function mostra_record()
{
   // mostro un eventuale messaggio
   if(isset($_GET['msg']))
      echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

   $id = intval($_GET['id']);

   // preparo la query
   $query = "SELECT titolo, testo, data  FROM news WHERE id = $id";

   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   // controllo che la SELECT abbia restituito un record
   // l'id passato via GET potrebbe essere stato manipolato
   if(mysql_num_rows($result) != 1) {
      die("l'ID passato via GET è errato");
   }

   list($titolo,$testo,$data) = mysql_fetch_row($result);

   $titolo   =  htmlspecialchars($titolo);
    $testo   =   htmlspecialchars($testo);
    $data   =   htmlspecialchars($data);
   ?>

   <form name="form_registrazione" method="post" action="">
Titolo:<br>
<input   type=text   size=40   name=titolo><br>
<br>
Data:<br>
<select   name=giorno>
</select>
<select   name=mese>
<option   value=1>Gennaio
<option   value=2>Febbraio
<option   value=3>Marzo
<option   value=4>Aprile
<option   value=5>Maggio
<option   value=6>Giugno
<option   value=7>Luglio
<option   value=8>Agosto
<option   value=9>Settembre
<option   value=10>Ottobre
<option   value=11>Novembre
<option   value=12>Dicembre
</select>
<select   name=anno>
<option   value=2006>2006
<option   value=2007>2007
<option   value=2008>2008
<option   value=2009>2009
<option   value=2010>2010
</select><br>
Testo:<br>
<textarea   cols=50   rows=40   name=testo warp="virtual"></textarea><br>
<br>
Password:<br>
<input   type=password   size=40   name=pass><br>

<br>   <input   type=submit   value=Invia> <input   type=reset>   </form>
<br>

   <?
}
?>

cosa sbaglio???????

inviato 10 anni fa
blackeyes
X 0 X

ho risolto, come non detto

bye

risposto 10 anni fa
blackeyes
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda