PHP birden fazla öğe silme

4 Cevap php

Ben öğelerin bir listesini silinmesi gerektiğini geçirilmesi gereken var. PHP bunu nasıl yapabilirim?

$query = "DELETE from members WHERE member_id ='$chan[2]' ";

$chan[2] birden fazla değer tutar, ama sadece bir siler.

4 Cevap

$ Chan [2] $ kanal dizideki bir eleman anlamına gelir. Yani, sen $ chan birden değerlere sahip olduğu anlamına düşünüyorum.

Bu deneyin:


$query = "DELETE FROM members WHERE member_id IN (" . implode(", ", $chan) . ");";

Kullanım

$query = "DELETE FROM members WHERE member_id IN (" . join("," $chan[2]) . ")";

$chan[2] silinecek kimlikleri listesini tutar ise. Ayrıca sadece SQL enjeksiyon sorunları önlemek için sorgu içine sayısal değerleri geçirmek emin olun.

doğru yoldur yukarıda verilen cevaplar patlar. Tamamen orada çok açık ne yapma uğruna; Bu implode olmasaydı eğer (ben aksi takdirde chan $ kullanmak, o $ chan yüzden chan $ [2] 5 üyesi olan bir 2-D dizi çekmek) kullanmak istiyorum koddur

// start roll-your-own $member_id_cond = implode(", ",$chan[2]);
$member_id_cond = "";
foreach( $chan[2] as $key => $data) {
     $member_id_cond .= $data . ", ";
     if($key == 4)  {  //this is just to remove the last comma
           $member_id_cond = sub_str($member_id_cond, 0, -2);
     }
 }
 //end implode 
 $query = "DELETE FROM members WHERE member_id IN ($member_id_cond)";