根据选中的复选框和数量向数据库添加行 - PHP
Adding rows to database based on selected checkbox and quantities - PHP
我的脚本 select 是数据库 table 中的项目列表,并将它们显示在复选框旁边。如果选中复选框并提交表单,则该项目将添加到 'stock' table.
我必须进行调整,以便用户可以 select 一个复选框并选择一个数量。但是,我没有使用 'quantity' 作为要插入到行中的值。相反,如果用户 select 的库存商品数量为 3 'Apple',我希望将 3 行 Apple 添加到数据库中。我当前的 HTML 脚本(包含在一个 while 循环中):
<label><input type="checkbox" value="<?php echo $show3['Part_Type']; ?>,<?php echo $show3['Sub_Type']; ?>" class="cbgroup1" name="cbg1[]" />
<?php echo $show3['Sub_Type']; ?><input type="number" size="2" value="1" name="qty_<?php echo $show3['Sub_Type']; ?>"></label>
发布到数据库的脚本:
foreach ($_POST['cbg1'] as $stock) {
$lst = explode(",", $stock);
//I do this because I send two values through the checkbox separated by a comma
$query = ("INSERT INTO stock SET Item_Specifics_Type='$lst[0]',
Item_Specifics_SubType='$lst[1]',
colour = '$colour',
additional='$additional',
stock_item = '$Make $ModelName $lst[1]'
");
$result = mysql_query($query) or die(mysql_error());
}
编辑以下答案的脚本:
foreach ($_POST['cbg1'] as $stock) {
list($partType,$subType) = explode(",", $stock);
$query = ("INSERT INTO stock SET
StockID='$unique_id-$breaker-$i',
unique_id='$breaker-$unique_id',
VehicleID='$unique_id',
breaker='$breaker',
Make='$Make',
Model='$Model',
Year='$Year',
YearRange='$year_range_array',
fuel= '$fuel',
enginesize = '$engine',
Item_Specifics_Type='$partType',
Item_Specifics_SubType='$subType',
colour = '$colour',
value = '$value',
vin='$vin',
additional='$additional',
stock_item = '$Make $ModelName $subType',
icp ='1',
upload_date ='$now'");
for($i=0;$i<$_POST['qty_'.$subType];$i++){
$result = mysql_query($query) or die(mysql_error());
}
}
您快完成了...但是请注意,您的代码需要进行安全审查,因为它存在许多缺陷。我假设它用于原型制作,并继续添加逻辑。
foreach ($_POST['cbg1'] as $stock) {
list($partType,$subType) = explode(",", $stock);
//I do this because I send two values through the check box separated by a comma
$query = ("INSERT INTO stock SET Item_Specifics_Type='$partType',
Item_Specifics_SubType='$subType',
colour = '$colour',
additional='$additional',
stock_item = '$Make $ModelName $subType'
");
for($i=0;$i<$_POST['qty_'.$subType];$i++){
$result = mysql_query($query) or die(mysql_error());
}
}
所以我们所做的是遍历 qty 输入中规定的数量以添加多行。
我还使用了 list() 和 explode 来制作两个不同的变量,这将使其他人更容易阅读,或者当代码增长时,他们现在明确地告诉他们包含什么。
我的脚本 select 是数据库 table 中的项目列表,并将它们显示在复选框旁边。如果选中复选框并提交表单,则该项目将添加到 'stock' table.
我必须进行调整,以便用户可以 select 一个复选框并选择一个数量。但是,我没有使用 'quantity' 作为要插入到行中的值。相反,如果用户 select 的库存商品数量为 3 'Apple',我希望将 3 行 Apple 添加到数据库中。我当前的 HTML 脚本(包含在一个 while 循环中):
<label><input type="checkbox" value="<?php echo $show3['Part_Type']; ?>,<?php echo $show3['Sub_Type']; ?>" class="cbgroup1" name="cbg1[]" />
<?php echo $show3['Sub_Type']; ?><input type="number" size="2" value="1" name="qty_<?php echo $show3['Sub_Type']; ?>"></label>
发布到数据库的脚本:
foreach ($_POST['cbg1'] as $stock) {
$lst = explode(",", $stock);
//I do this because I send two values through the checkbox separated by a comma
$query = ("INSERT INTO stock SET Item_Specifics_Type='$lst[0]',
Item_Specifics_SubType='$lst[1]',
colour = '$colour',
additional='$additional',
stock_item = '$Make $ModelName $lst[1]'
");
$result = mysql_query($query) or die(mysql_error());
}
编辑以下答案的脚本:
foreach ($_POST['cbg1'] as $stock) {
list($partType,$subType) = explode(",", $stock);
$query = ("INSERT INTO stock SET
StockID='$unique_id-$breaker-$i',
unique_id='$breaker-$unique_id',
VehicleID='$unique_id',
breaker='$breaker',
Make='$Make',
Model='$Model',
Year='$Year',
YearRange='$year_range_array',
fuel= '$fuel',
enginesize = '$engine',
Item_Specifics_Type='$partType',
Item_Specifics_SubType='$subType',
colour = '$colour',
value = '$value',
vin='$vin',
additional='$additional',
stock_item = '$Make $ModelName $subType',
icp ='1',
upload_date ='$now'");
for($i=0;$i<$_POST['qty_'.$subType];$i++){
$result = mysql_query($query) or die(mysql_error());
}
}
您快完成了...但是请注意,您的代码需要进行安全审查,因为它存在许多缺陷。我假设它用于原型制作,并继续添加逻辑。
foreach ($_POST['cbg1'] as $stock) {
list($partType,$subType) = explode(",", $stock);
//I do this because I send two values through the check box separated by a comma
$query = ("INSERT INTO stock SET Item_Specifics_Type='$partType',
Item_Specifics_SubType='$subType',
colour = '$colour',
additional='$additional',
stock_item = '$Make $ModelName $subType'
");
for($i=0;$i<$_POST['qty_'.$subType];$i++){
$result = mysql_query($query) or die(mysql_error());
}
}
所以我们所做的是遍历 qty 输入中规定的数量以添加多行。
我还使用了 list() 和 explode 来制作两个不同的变量,这将使其他人更容易阅读,或者当代码增长时,他们现在明确地告诉他们包含什么。