PHP-MYSQL检查和追加函数

PHP-MYSQL检查和追加函数,php,mysql,function,append,Php,Mysql,Function,Append,我希望有人能帮忙。基本上我对PHP和MySQL都很满意, 然而,我需要一些关于如何完成这项任务的建议 由于我的系统很复杂,无法解释,所以我将其浓缩,以便更清晰 基本上,我有一个简单的PHP表单,要求用户提供: 名称、订购项目、项目数量。OrderID是自动生成的,是随机的 4号。所以现在我用这个: $sql="INSERT INTO system_orders (orderid,name,itemordered,itemquantity) VALUES ('$randomgenerate

我希望有人能帮忙。基本上我对PHP和MySQL都很满意, 然而,我需要一些关于如何完成这项任务的建议

由于我的系统很复杂,无法解释,所以我将其浓缩,以便更清晰

基本上,我有一个简单的PHP表单,要求用户提供: 名称、订购项目、项目数量。OrderID是自动生成的,是随机的 4号。所以现在我用这个:

 $sql="INSERT INTO system_orders
 (orderid,name,itemordered,itemquantity)  VALUES
 ('$randomgeneratednumber', '$_POST[name]','$_POST[itemordered]','$_POST[itemquantity]')"; and
 run $sql
现在我想要的是,如果他们把数量设为2,我想要它创建一个额外的行并追加 随机生成的数字。例如,如果randomgeneratednumber为9876,数量为2,则在本例中,它将使用$randomgeneratednumber-2创建一个额外的新行,即9876-2

有人知道如何做到这一点吗

我临时使用了一个if语句,我知道这是非常糟糕的编程实践 手动附加-2,但必须有一个函数检测$quantity=2 然后为3,4,5,6,7,8…创建附加了-2的附加行。

使用循环:

if ($quantity > 1) {
    for ($q = 2; $q <= $quantity; $q++) {
        $sql = "INSERT INTO system_orders
                (orderid,name,itemordered,itemquantity)  VALUES
                ('$randomgeneratednumber-$q', '$_POST[name]',  '$_POST[itemordered]', '$_POST[itemquantity]')";
       // run $sql
    }
}

您还应该切换到支持参数化查询的数据库API,或转义用户提供的输入。

您不使用orderid的自动增量有什么原因吗?是的,基本上orderid是另一个系统上的可跟踪链接,我不想使用自动递增,因为人们可以很容易地猜测订单号并查看详细信息,因此,自动生成的编号可以防止出现这种情况,从而减少了他们猜测问题的机会。我不认为他希望每个增量项目数量有一行,只是多个项目有一个额外的单个条目,即一个基本行和最多一个额外行,数量作为订单号上的额外字符串。至少我是这样读他的问题的,我想当他决定接受我们的答案时,我们会知道的。非常感谢你的回答,我正在尝试这段代码,但是,在这行“for var$q=2$很抱歉,有一点Javascript出现了。您好,经过广泛的测试,它仍然不工作。例如,假设数量设置为3,这段代码应该创建3个单独的MySQL行?我只得到创建的一行。嗨,Dave,非常感谢您提供的代码。这与我一开始做的类似,问题是,如果项目数量为3,会发生什么?这将创建第一个sql行,然后使用$randomgeneratednumber-3创建另一行,但是$randomgeneratednumber-2呢我需要它为每个数量值创建一个单独的行。i、 e.数量20,创建20行。。
 $sql="INSERT INTO system_orders
 (orderid,name,itemordered,itemquantity)  VALUES
 ('$randomgeneratednumber', '$_POST[name]','$_POST[itemordered]','$_POST[itemquantity]')"; and
 run $sql

if ($_POST['itemquantity']>1) {
$multipleorderid = $randomgeneratednumber."-".$POST['itemquantity'];
 $sql="INSERT INTO system_orders
 (orderid,name,itemordered,itemquantity)  VALUES
 ('$multipleorderid', '$_POST[name]','$_POST[itemordered]','$_POST[itemquantity]')"; and
 run $sql
}