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