2017-06-23 1 views
2

J'ai ce tableauPHP - Supprimer plusieurs éléments de base de données avec un tableau d'ID

array(4) { [0]=> string(1) "1" [1]=> string(1) "3" [2]=> string(1) "4" [3]=> string(1) "5" } 

Si tous les éléments de ce tableau est ID de poste. Dans mysql, postes de table, ID de colonne.

requête SUPPRIMER pour un ID serait quelque chose comme

DELETE FROM posts WHERE id = $id

Je peux faire regarder à travers ce tableau et de faire supprimer requête sur chacun d'eux.

Mais ils sont 4. Donc ce sera 4 requêtes. Et si j'avais 70 ans? 70 questions ....

Et la question est, comment supprimer tous les messages à la fois ayant ce tableau d'ID?

+4

Utiliser 'WHERE id IN()' –

+0

C'est un double de [cette] (https: //stackoverflow.com/questions/10698524/parameterised-in-clause-in-prepared-statement-using-mysql-php-and-adodb). –

Répondre

8

Première utilisation implode() pour créer une chaîne à partir de votre tableau, puis utilisez WHERE id IN():

$ids = implode("','", $array); 
queryMethod("DELETE FROM posts WHERE id IN ('".$ids."')"); 

PHP Manual: Implode