Ciao ragazzi.
Mi sto scervellando con una query che non si comporta come dovrebbe.
Passo a spiegarvi.
Ho una tabella dove vengono salvati dei commenti ad un blog.
I commenti vengono filtrati per evitare inoculazione di codice e/o parolacce, ma qualcuno potrebbe comunque inserire messaggi offensivi o spam di qualche tipo.
L'amministratore del sito potrà quindi cancellare i messaggi "politically incorrect".
Ho quindi una form dove sono listati i messaggi ed una checkbox per ognuno.
Codice PHP:
echo "
<input type=\"checkbox\" id=\"seleziona[]\" name=\"seleziona[]\" value=\"$id_commento\" />
";
Nello script che cancellerà i record dalla tabella dei messaggi, la parte di codice incriminata è la seguente:
Codice PHP:
$lista_id = implode(',', $_POST['seleziona']);
$sql = "DELETE FROM nome_tabella WHERE id IN ('$lista_id') ";
La magagna sta qui.
Se vengono selezionati 3 messaggi e stampo la query leggo:
codice:
DELETE FROM nome_tabella WHERE id IN ('11,14,15')
Ma in effetti viene cancellato solo 1 dei record passati.
Dov'è che sbaglio???