26-08-2010, 03:55 PM
(Modification du message : 26-08-2010, 04:07 PM par Sephi-Chan.)
Récupère plutôt l'ID des messages sélectionnés et regroupe les pour générer une clause IN().
Pour avoir directement un tableau d'ID, met directement un nom de la forme suivante à tes check boxes :
Ainsi, ta variable $_POST[messages_to_delete] contiendra un tableau de chaînes de caractères numériques), ensuite, tu n'as plus qu'à construire une requête de la façon suivante (n'oublie pas qu'on encadre pas les entiers de guillemets en SQL) :
Et ça te produira une requête comme :
Je n'ai pas testé mais ça devrait le faire.
Sephi-Chan
Pour avoir directement un tableau d'ID, met directement un nom de la forme suivante à tes check boxes :
<input type="checkbox" id="delete-message-12" value ="12" name="messages_to_delete[]" />
<input type="checkbox" id="delete-message-19" value ="19" name="messages_to_delete[]" />
Ainsi, ta variable $_POST[messages_to_delete] contiendra un tableau de chaînes de caractères numériques), ensuite, tu n'as plus qu'à construire une requête de la façon suivante (n'oublie pas qu'on encadre pas les entiers de guillemets en SQL) :
$message_ids = array_filter($_POST['messages_to_delete'], 'is_numeric');
$query = sprintf(
"UPDATE mp_etet SET del = 1 WHERE id IN(%s) AND dest = %d;",
join(', ', $message_ids),
$id_joueur
);
Et ça te produira une requête comme :
UPDATE mp_etet SET del = 1 WHERE id IN(12, 19) AND dest = 42;
Je n'ai pas testé mais ça devrait le faire.
Sephi-Chan