我有一个$ _POST数组,它是从显示的HTML表格中选择(在这种情况下)3行产生的,其中每行都有一个复选框。 ID是每行的唯一标识符。
Array
(
[checkbox] => Array
(
[0] => 001403166
[1] => 001407509
[2] => 001407541
)
)
我想将ID收集到变量中,以便我可以返回并从mysql中提取完整行以进行处理(例如,删除等) - 类似〜
$var1 = 001403166
$var2 = 001407509
$var3 = 001407541
我不知道如何做到这一点(并不罕见),甚至不知道它是什么,以便我可以找到有关它的信息。谢谢你的帮助!
答案 0 :(得分:5)
extract函数几乎可以满足您的要求:
int extract ( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
将数组中的变量导入 当前的符号表。
我认为,这样的事情应该可以解决问题:
extract($_POST['checkbox'], EXTR_PREFIX_ALL , 'var');
唯一的问题是你会得到名为$var_0
,$var_1
,$var_2
的变量:
0
而不是1
开始计算,$_POST['checkbox']
中的键从0
开始。_
和数字之间加上“$var
”。
注意:在使用extract
之前,您应确保$_POST['checkbox']
仅包含“干净”数据!
答案 1 :(得分:1)
您可能还会考虑将此数组插入单个字符串,并使用数据库本机IN()
函数来减少为每个行运行单个请求。
$uniqueIDs = array(1111,1222,1333);
$idString = implode(",",$uniqueIDs);
$query = "SELECT id, col1, col2
FROM tableName
WHERE id IN ({$idString})";
此查询将成为:
SELECT id, col1, col2
FROM tableName
WHERE id IN (1111,1222,1333)
选择在该列表中找到ID的行。