Dovendo rimuovere dei tag html, da uno specifico campo del database, ho cercato di farmi una funzione che lo facesse in automatico, senza dover intervenire manualmente sul db.
Ho fatto quindi questa pagina:
Codice PHP:
<?PHP
require "configure.php";
$link = mysql_connect($host, $dbuser, $dbpass)
or die("Impossibile connettersi al database");
mysql_select_db($dbname)
or die("Impossibile selezionare il database");
mysql_query("set names 'utf8'");
$empty = "";
$list = "";
$result = mysql_query("SELECT * FROM `offerte` WHERE `speciale` != '$empty'");
while ($row = mysql_fetch_array($result)) {
$id = $row["id"];
$speciale = $row["speciale"];
$special = strip_tags($speciale);
$special = addslashes($special);
$list .= $special . "
";
$query = "UPDATE `offerte` SET
speciale = '$special'
WHERE id = '$id'";
$result = mysql_query($query) or die (mysql_error());
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title></head><body><?PHP
echo $list;
?></body></html>
Però quello che accade è che:
- l'echo della variabile $list mi riporta solo il primo campo $speciale
- la query di update non viene effettuata
- la query di update non restituisce alcun messaggio di errore
Se tolgo la query, l'echo della variabile $list appare completo.
Perchè la query non va, e perchè non mi restituisce l'errore?