2013-12-24 51 views
-2

我有一個用foreach()更新數量的購物車。PHP中的無效參數foreach()

HTML

<form method="post" > 
<?php while ($data2 = mysql_fetch_array($data)) { ?> 
<tr> 
    <td> <input name="quantity" type="text" class="form-field" size="3" value="<? echo $data2['quantity'];?>" /> 
    <input type="hidden" name="product_id" value="<? echo $data2['product_id']; ?>"> 
    </td> 
    </tr> 
    <? } ?> 
    </form> 

和我的PHP,我有

if (isset($_POST['submit_qty'])) 
{ 
foreach($_POST['product_id'] as $key => $id) 
{ 
    $item_id = $id; 
    $quantity = $_POST['quantity'][$key]; 
    $sql2 = "update cart SET quantity = '".$quantity."' where product_id = '".$item_id."' "; 
    $result2 = mysql_query($sql2) or die ("Error in query: $result2"); 
} 

header('Location: mycart.php'); 
exit(); 
} 

如果我贊同我的SQL查詢,我得到:

警告:的foreach提供了無效的參數()

可能是什麼問題?

+3

'$ _POST ['product_id']'不是數組。 –

+2

這個問題已被問過1000次以上,並且回答了更多次。下一次請在提問前使用搜索;它很可能已經被回答了。 –

+0

[爲foreach()提供的無效參數可能重複(http://stackoverflow.com/questions/2630013/invalid-argument-supplied-for-foreach) – Roopendra

回答

2

您沒有將您的product_id作爲數組傳遞。

嘗試<input type="hidden" name="product_id[]" value="<? echo $data2['product_id']; ?>">