MYSQL删除value =多个POST值

vii*_*vii 2 php mysql

我试着把它,

check_box=147&check_box=148&check_box=146 etc..
Run Code Online (Sandbox Code Playgroud)

$delete_selected = $connection->real_escape_string($_POST['check_box'])

$sql = "DELETE FROM categories WHERE cat_id = '$delete_selected'";
Run Code Online (Sandbox Code Playgroud)

但它只删除第一个check_box值.有没有办法循环所有的值?

Mik*_*rov 6

你需要改变你的岗位变量[],即checkbox[]=.一旦修复,就到了后端......

考虑到你需要逃避每一个价值,做这样的事情:

$clean_values = array();
foreach($_POST['check_box'] as $value){
    $clean_values[] = $connection->real_escape_string($value);
}

$sql = 'DELETE FROM categories WHERE cat_id in ('.implode(',',$clean_values).')';
Run Code Online (Sandbox Code Playgroud)

奖金PHP5.3答案:

array_walk($_POST['check_box'],function(&item) use($connection){
    $item = $connection->real_escape_string($item);
});
$sql = 'DELETE FROM categories WHERE cat_id in ('.implode(',',$_POST['check_box']).')';
Run Code Online (Sandbox Code Playgroud)