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


php code to create dynamic rows and insert in database

我需要从自定义代码开始以串行顺序生成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));
                            }
                    }
                }

您的问题与Ashok Awachat的问题完全相同。你们两个似乎都经常向StackOverflow提交问题,让别人来做你们(我想)的大学作业。

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

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

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

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

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

  5. 缓慢而有条理地工作。不要试图一气呵成。从小处着手,从那里开始。

关于StackOverflow,您需要考虑以下内容:

  1. 您提交的问题是非常初级的,与基本的事情有关,比如不理解变量范围。因此,买一些关于PHP、SQL和HTML的书,你可以参考。把你正在使用的系统的文档页面加上书签。在网上搜索教程等

  2. 提交尽可能多的问题信息。我的意思是,给出你尝试过的代码,你得到了什么错误("它不起作用"是不可接受的)等等。如果有人要求从某个东西输出,请提供它。

  3. 不要将StackOverflow成员视为愿意为您做项目的庞大人员库。在座的每一个人都是发自内心地回答问题。他们不必在这里。我想绝大多数回答问题的人都有高薪的工作。

  4. 一旦一个问题得到回答,就不要再回头把这个问题改成问另一个问题(Ashok就是这么做的)。此外,如果你这样做,不要删除评论,因为它会删除问题的上下文。开始一个新的问题。如果你无法做到这一点,因为你每天的问题已经达到了极限(我不知道这是否可能),那么这应该是对你自己的一个警告信号,你正在采取简单的方法来解决

如果你要成为一名开发人员,那么你需要知道如何寻找bug。每次遇到问题都在StackOverflow上提问并不能教会你任何东西