Ciao a tutti,
ho creato un database e vorrei modificare i campi mediante un form php.
Ho riscontrato però un problema che non riesco a risolvere.
Come posso evitare di poter fare modificare da input ID_OP visto che è una chiave primaria del mio database?
Ho provato anche modificando la query $sql eliminando la visualizzazione di id_op ma in quel caso poi non effettua la modifica nel database.
Vi posto il file di modifica.php
Grazie
[cod]
<?php
include ("include/connect.php");
?>
<?php
$confirm=$_REQUEST['confirm'];
$id=$_REQUEST['id_op'];
if (!$confirm)
{
$sql="select id_op, nome, cognome, ruolo, tel from operatore where id_op=$id";
$result = mysql_query($sql, $db) or die (mysql_error());
$AffectedRows = mysql_affected_rows($db);
if ($AffectedRows==0)
{
echo "Non esistono record con i criteri selezionati";
}
else
{
mysql_data_seek($result,0);
$row=mysql_fetch_row($result);
echo "<table>";
echo "<form method=\"post\"action=\"{$_SERVER['PHP_SELF']}\">";
foreach ($row as $k => $v)
{
$myfield = mysql_fetch_field($result,$k);
echo "<tr><td>$myfield->name</td>";
echo "<td><input type=\"text\" value=\"" . $v . "\" name=\"" . $myfield->name . "\" size=\"30\" </td></tr>";
}
echo "<tr><td>
<input type=\"submit\" value=\"Conferma modifiche\"></td></tr></br>";
echo "<input type=\"hidden\" name=\"confirm\" value=\"1\">";
echo "</form>";
echo "</table>";
mysql_free_result($result);
mysql_close($db);
}
}
else
{
$nome=$_REQUEST['nome'];
$cognome=$_REQUEST['cognome'];
$ruolo=$_REQUEST['ruolo'];
$tel=$_REQUEST['tel'];
$query="update operatore set nome=\"$nome\"," . "cognome=\"$cognome\"," . "ruolo=\"$ruolo\"," . "tel=\"$tel\"" . "where id_op=$id";
$result = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);
if ($AffectedRows!=0)
{
echo "Record aggiornato";
echo "<a href=\"visualizza_op1.php\">
Torna alla lista</br></a>";
}
else {
echo "Non sono state effettuate modifiche al record";
echo "<a href=\"visualizza_op1.php\">
Torna alla lista</br></a>";
}
//mysql_free_result($result);
mysql_close($db);
}
?>
[/cod]