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.
Eşitlik operatörü tam olarak verilen değeri eşleşen değerleri silecektir. Bir dizide birden kimlikleri var, başka bir koşul kullanmak gerekir. Sen MYSQL fonksiyonunu FIND_IN_SET()
kullanabilirsiniz a>, örneğin, sizin veritabanı ise:
$ids = array(1, 2, 3);
$query = "DELETE FROM members WHERE FIND_IN_SET(member_id, '" . implode(',', $ids) . "')";
Bir şey daha: Eğer kullanıcı kimlikleri aldık eğer çok çok dikkatli olun. It might contain bogus data. Korunması ile yapılır mysql_escape_string()
a>:
$ids = array_map('mysql_escape_string', $ids);
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)";