我有上一篇文章,我需要更改我的HTML表单以接受数组。 This post包含代码的完整详细信息。
所以我相应地改变了所有形式,例如:
<select name="camera_type[]">
但现在我仍然坚持如何运行更新查询。现在我将所有内容存储在一个数组中,显然我不能按原样使用我的查询。这篇文章似乎正是我的需要,但我不确定我理解:Update MySQL table with an Array using Foreach
对此有任何进一步的帮助表示赞赏。
答案 0 :(得分:1)
对提交的值使用foreach
loop。然后,您可以迭代整个数组并根据需要构建查询。
例如:您有一个$ _POST ['camera_type']变量,该变量是从浏览器提交的。在您的PHP脚本中执行以下操作。
foreach($_POST['camera_type'] as $value) {
//do your processing.
}
答案 1 :(得分:1)
为了帮助理解循环数组并运行UPDATE
个查询,请查看:
// first setup your MySQLi connection
$db = new mysqli('localhost', 'user', 'pass', 'dbname');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit;
}
// disable autocommit for transactions
$db->autocommit(false);
// **EDIT** forgot to escape input data. fixed now. note the mysqli_real_escape_string() and int type casting
foreach ($_POST['camera_type'] as $type) {
// assuming 'id' is set in the POST array
$query = sprintf(
'UPDATE table SET column = "%s" WHERE id = %d',
$db->real_escape_string($type),
(int) $_POST['id']
);
$db->query($query);
}
// commit transactions (or commit the updates that were run) and then close
$db->commit();
$db->close();