2014-01-23 76 views
-1

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

這又如何解決呢?

+0

通過使用循環?你有什麼嘗試? – David

回答

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項目:

foreach($_POST['item'] as $id => $values) { 
    $query = 'UPDATE `table` SET `text` = "'. $values['text'] .'", `text2` = "'. $values['text2'] .'" WHERE `id` = $id"; 
} 

一定要預防添加到SQL注入儘管! !

+0

和我這樣做:WHERE'id' =「'。$ values ['id']。'」是否正確? – HKK

+0

不,實際上你的id是在'$ id'變量中,但是你可以添加一個隱藏的輸入字段(儘管它是無用的)。 '' – giorgio

+0

但更新?我必須讓SQL-WHERE? – HKK

-1
foreach($_POST as $key => $val) { 
    echo "KEY: ".$key." VAL: ".$val."<br>"; 
} 

這將簡單地打印出所有$ _POST鍵和值。

從那裏,將它們添加到您的聲明。

+0

我可能誤解了這個問題 – user2537383