我希望有人能帮帮忙。基本上,我对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。例如,如果randomgeneratednumber为9876并且数量为2,则将创建另一个新行,并带有$ randomGeneratednumber-2,在本例中为9876-2

有人知道如何实现这一目标吗?

我暂时使用了if语句(我知道这确实是不好的编程习惯)
手动附加-2,但必须有一个函数来检测$ quantity = 2
然后用附加的-2创建其他行,依次类推3,4,5,6,7,8 ...

最佳答案

使用循环:

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,或者转义用户提供的输入。

08-06 23:26