多个foreach?

时间:2014-01-23 17:21:04

标签: php forms foreach

我必须使用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[]"

如何解决这个问题?

2 个答案:

答案 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键和值。

从那里,将它们添加到你的陈述中。