php代码创建动态行并插入数据库

时间:2015-02-17 09:20:02

标签: php mysql pdo

我需要从自定义代码开始以序列顺序生成no。如果用户想要打印两本书,每本书有3张收据,每张收据上有2张优惠券。

  • 用户输入图书代码和总图书

  • 用户输入收据代码和总收据

  • 用户输入优惠券代码和总优惠券

文本框中的用户输入,如:

bookno   - 101
totalbook    -  2

receiptno  - 500
totalrec      -  2

coupon     -  700
totalcoup     -   2

然后输出如下表所示。

在此表格中,优惠券号码始终是唯一的。收据号码不会两次,因为每张收据都有两张优惠券。

请建议我如何使用for循环生成以下输出并插入数据库中的每一行。

book   receipt     coupon

101     500        -   700

101     500        -   701

101  -   501       -    702

101  -   501        -   703

102   -  502        -   704

102  -   502         -  705

102   -  503        -   706

102   -  503        -   707

我尝试下面的代码,但没有正常工作。

         $bookno= $_POST['bookcode'];               
                $totalbook= $_POST['book_no2']; 

                $receiptno = $_POST['receiptcode'];
                $totalrec= $_POST['receipt_no'];                        
                $couponno= $_POST['couponcode'];                            
                $totalcoup= $_POST['coupon'];   


for($row1=$bookno;$row1<=$bookno+$totalbook;$row1++)
                    {   

                    for($row=$receiptno;$row<=$receiptno+$totalrec;$row++)
                        {

                                for($row2=$couponno;$row2<=$couponno+$totalcoup;$row2++)
                                {   

$insertrow = $database->insertRow("INSERT INTO scheme_master (book_no2,receipt_no,coupon)
VALUES (:book_no2,:receipt_no,:coupon)", 
array(':receipt_no'=>$row,':book_no2'=>$row1,':coupon'=>$row2));

                            }

                    }
                }

1 个答案:

答案 0 :(得分:2)

您的问题与Ashok Awachat的{{3>}相同正确。你们似乎都经常向StackOverflow提交问题,让其他人去做(我认为)大学工作。

正如我在之前的回答中所说,回到第一原则:

  1. 如果您在通过PHP运行SQL查询时遇到问题,请直接尝试使用硬编码值对数据库进行查询

  2. 如果SQL在数据库上正常工作,请从PHP再次使用硬编码值进行尝试

  3. 不要重新发明轮子。您正在使用接受查询和一组参数的方法。如果为此输入完整的PHP,开销可以忽略不计,但代码的可读性会增加。

  4. 逐步向您的应用添加调试代码,以便您可以检查每个阶段发生的情况。一旦您对一个部件正在工作感到满意,请将调试添加到下一部分。 (在此实例中调试是记录值错误)

  5. 缓慢而有条不紊地工作。不要试图一劳永逸地完成所有事情。从小处开始,然后从那里开始。

  6. 关于StackOverflow,您需要考虑以下事项:

    1. 您提交的问题非常简陋,与基本事物有关,例如不理解变量范围。因此,购买一些可以参考的PHP,SQL和HTML书籍。为您正在使用的系统的文档页面添加书签。在网上搜索教程等

    2. 尽可能多地提交您的问题信息。通过这个,我的意思是给你已经尝试的代码,你得到了什么错误(&#34;它没有工作&#34; 可接受)等等如果有人要求输出来自某事,供应它。

    3. 不要将StackOverflow成员视为愿意为您完成项目的人员的庞大存储库。这里的每个人都在回答他们心中善良的问题。他们不必在这里。我猜想绝大多数回答问题的人都有工作可以赚到很多钱。

    4. 一旦问题得到解答,不要再回头改变问题再问另一个问题(Ashok这样做了)。此外,如果您执行此操作,请不要删除评论,因为它会从问题中删除上下文。关闭一个新问题。如果您无法做到这一点,因为您已经达到了每天的问题限制(我不知道这是否可能),那么这应该是一个警告信号,表明您正在服用轻松出路

    5. 如果你将成为一名开发人员,那么你需要知道如何追捕。每次遇到问题时在StackOverflow上提出问题都不会教你什么