Php 循环URL参数并添加到mySQL
我正在制作一个购物篮,里面有各种产品可供选择。我已使用get操作创建了我的表单: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[
<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());
}
}
}