我必须使用foreach操作,因为我的表单项数量未知,我的表单如下所示:
<form> <Input type="hidden" Name="id[]" value="<?php echo $id, ?>"> <Input type="text" Name="text[]" > <Input type="text" Name="text2[]"></form>
提交$ _POST
在帖子页面上应该这样做:
(foreach) (SQL) "Update table SET text=$text[], text2=$text[] WHERE id = $id[]"
如何解决这个问题?
答案 0 :(得分:0)
如果您的表单格式如此,您可以执行以下操作:
foreach($_POST['id'] as $i => $id) {
$query = 'UPDATE `table` SET `text` = "'. $_POST['text'][$i] .'", `text2`="'. $_POST['text2'][$i] .'" WHERE `id` = '. $id;
}
更好;让html发送一个多维数组,但你必须自己添加索引。但是因为你已经有了一个id,你可以使用那个作为索引:
<form>
<input type="text" name="item[<?php echo $id; ?>]['text']">
<input type="text" name="item[<?php echo $id; ?>]['text2']">
</form>
然后您可以预先处理这些项目:
foreach($_POST['item'] as $id => $values) {
$query = 'UPDATE `table` SET `text` = "'. $values['text'] .'", `text2` = "'. $values['text2'] .'" WHERE `id` = $id";
}
确保为SQL注入添加预防!!!
答案 1 :(得分:-1)
foreach( $_POST as $key => $val) {
echo "KEY: ".$key." VAL: ".$val."<br>";
}
这将只打印出所有$ _POST键和值。
从那里,将它们添加到你的陈述中。