Salve, non riesco a individuare l'errore di esecuzione di un UPDATE su database SQL.
Prelevo i dati con un SELECT opportuno e li organizzo nei value di una serie di caselle <input> o <textarea> a seconda della lunghezza. Intervengo dove occorre e clicco sul pulsante di invio invocando l'action, cioè la pagina PHP dove c'è l'istruzione di UPDATE, ma ricevo sempre un errore.
Le istruzioni sono grosso modo queste:
Codice PHP:
$id=$riga['id'];
$autori=htmlspecialchars($riga['Autori'],ENT_QUOTES); // per problemi con gli apici/apostrofi
$protagonista=htmlspecialchars($riga['Protagonista'],ENT_QUOTES); // idem
$titolo=htmlspecialchars($riga['Titolo'],ENT_QUOTES); // idem
echo "<form action='modifica.php' method='post' name='modifica' target='_blank'>\n";
echo "<input type='hidden' name='tabella' value='$tabella'>\n<input type='hidden' name='id' value='$id'>\n";
echo "<input type='text' name='autori' size='12' value='$autori'>\n";
echo "<input type='text' name='protagonista' size='12' value='$protagonista'>\n<input type='text' name='titolo' size='12' value='$titolo'>\n";
echo "<input type='submit' value='OK'>\n";
echo "</form>";
In modifica.php
Codice PHP:
$tabella=$_POST['tabella'];
$id=$_POST['id'];
$autori=$_POST['autori'];
$autori=str_replace("'","''",$autori);
$protagonista=$_POST['protagonista'];
$protagonista=str_replace("'","''",$protagonista);
$titolo=$_POST['titolo'];
$titolo==str_replace("'","''",$titolo);
$sql = "UPDATE '$tabella' SET Autori='$autori', Protagonista='$protagonista', Titolo='$titolo', WHERE id='$id'";
$result = mysqli_query($link, $sql);
if (!$result) { die('Errore nel database: ' . mysqli_error()); }
Ovviamente i nomi dei campi della tabella sono rispettati...
La pagina web segnala soltanto il messaggio del die senza alcun dettaglio sull'errore.