Php 循环URL参数并添加到mySQL

Php 循环URL参数并添加到mySQL,php,mysql,loops,foreach,get,Php,Mysql,Loops,Foreach,Get,我正在制作一个购物篮,里面有各种产品可供选择。我已使用get操作创建了我的表单: <form method="get" action=""> <input name="category" type="hidden" value="<?php echo $category; ?>"> <input name="product_option_id" type="hidden" value="<?php echo $showProductOptions[

我正在制作一个购物篮,里面有各种产品可供选择。我已使用get操作创建了我的表单:

<form method="get" action="">
<input name="category" type="hidden" value="<?php echo $category; ?>">
<input name="product_option_id" type="hidden" value="<?php echo $showProductOptions['id']; ?>">
<input type="text" maxlength="3" size="2" value="1" class="formqty" id="quantity_wanted" name="qty">

有人能帮忙吗?非常感谢

您确定在循环中得到了正确的值吗?
因为正如参数列表所示,它将在第一次迭代时为您提供产品id,并在每秒钟提供数量(如果数量是数量…)

问题是您的foreach-

foreach ($_GET as $productoptionid => $quantity) {
   if(is_numeric($productoptionid) && is_numeric($quantity)) {
使用给定的url参数,您将具有以下值

$productoptionid => product_option_id
$quantity => 13

$productoptionid => qty
$quantity => 1

$productoptionid => product_option_id
$quantity => 14

$productoptionid => qty
$quantity => 2
因此,由于您的
$productoptionid
是字符串(并且它们没有链接到您的
数量
),因此您的
插入
永远不会执行,因为
是数字($productoptionid)
总是错误的


一种方法是使用
product\u选项\u id
作为输入名称数组键
name=“qty[]”
-



注意:
mysql\uuu
不推荐使用。看看如何更新到
mysqli\uucode>或
PDO

你实际上在做什么??插入或更新??检查查询插入数据库的语法。@Ashish:OP的插入查询是100%正确的。您可以选择“插入并设置”。我也只是觉得那件事不对劲。。后来我觉得你说得有道理。产品选项ID是否每次都应该是一个不同的名称?如果参数是这样传递的,解决方法可能是在循环外部(q,ID)和循环内部设置两个变量,具体取决于索引-可能将变量$productoptionid更改为$varname),然后如果($varname='qty'){$q=$quantity;}如果($varname=='product\u option\u id'){$id=$quantity;}然后每一次迭代都会将值存储到数据库中……希望得到逻辑。
$productoptionid => product_option_id
$quantity => 13

$productoptionid => qty
$quantity => 1

$productoptionid => product_option_id
$quantity => 14

$productoptionid => qty
$quantity => 2
<form method="get" action="">
<input name="category" type="hidden" value="<?php echo $category; ?>">
<input type="text" maxlength="3" size="2" value="1" class="formqty" id="quantity_wanted" name="qty[<?php echo $showProductOptions['id']; ?>]">
if(isset($_GET['formadd'])) {
    foreach ($_GET['qty'] as $productoptionid => $quantity) {
        if(is_numeric($productoptionid) && is_numeric($quantity)) {
            mysql_query(" INSERT INTO standard_basket SET session_id = '".$sessionid."', product_option_id = '".$productoptionid."', quantity = '".$quantity."'") or die(mysql_error());
        }
     }
}