PHP规范化,如何创建适当的循环?

PHP规范化,如何创建适当的循环?,php,mysql,foreach,sizeof,explode,Php,Mysql,Foreach,Sizeof,Explode,我尝试将我的表预订分为3个表以实现规范化。 嗯,当我尝试为多个预订生成1个bookingID时,我遇到了问题。 我对循环感到困惑 场景:客户预订了两个展位,A01和A02(A01从第1天预订到第3天,而A02从第1天预订到第2天)。 系统将处理预订,它应该为A01和A02生成2个预订ID,并为A01_D1、A01_D2、A01_D3(携带预订ID A01)和A02_D1、A02_D2(携带预订ID A02)生成预订日程ID。我应该如何循环并获得以下结果 我的编码 <?php incl

我尝试将我的表预订分为3个表以实现规范化。 嗯,当我尝试为多个预订生成1个bookingID时,我遇到了问题。 我对循环感到困惑

场景:客户预订了两个展位,A01和A02(A01从第1天预订到第3天,而A02从第1天预订到第2天)。

系统将处理预订,它应该为A01和A02生成2个预订ID,并为A01_D1、A01_D2、A01_D3(携带预订ID A01)和A02_D1、A02_D2(携带预订ID A02)生成预订日程ID。我应该如何循环并获得以下结果

我的编码

<?php

include('db.php');

// check array and insert parrentBookingID

// check submitted totalDay
if (isset($_POST['submit']) && isset($_POST['totalDay'])) {

    //check day exist or not
    $cDay=$_POST['totalDay'];

    for ($i=1; $i<=sizeof($cDay); $i++) { //check array size    
        $temp=0;

        foreach ($cDay as $dy) {
            $checkDay = $dy;
            $checkDay = explode(" ", $checkDay);
            echo $checkDay[0]; // boothAlias
            echo $checkDay[1]; // boothID
            echo $checkDay[2]; // day

            $checkDayResult = mysql_query(
                "SELECT * FROM bookingDetail WHERE boothID='$checkDay[1]' 
                 and day='$checkDay[2]' and username='$user'"
            );

            $num_rows_check = mysql_num_rows($checkDayResult);
            if ($num_rows_check) {
                echo "Exist";
                $temp += 1;
            } else {
                $temp += 0;
            }
        }
    } //FOR LOOP CHECK ARRAY SIZE

    echo "temp".$temp;
    if ($temp != 0) {
        echo "Please try again";
    } else {
        // insert parentBookingID
        $parent = mysql_query(
            "INSERT into booking (custNo,eventID,dateBook) 
            VALUES ('$userID','$event',NOW())"
        );
        $parentBookID = mysql_insert_id();

        // End check array and insert parrentBookingID
        // check booth, create bookingDetailID

        $booth = $_POST['totalDay'];

        //for loop check array size for check repeat booth.
        for ($j=1; $j <= sizeof($booth); $j++) { 
            $current = explode (" ", $booth);
        } // end for loop check repeat loop.

        // end check booth.

        $totalDay = $_POST['totalDay'];
        $allBooth = "";

        foreach ($totalDay as $d) { 
            echo $d;

            $bookingInfo  = $d;
            $bookingInfo = explode(" ", $bookingInfo);
            echo $bookingInfo[0]; // boothAlias
            echo $bookingInfo[1]; // boothID
            echo $bookingInfo[2]; // day    

            $result = mysql_query(
                "SELECT * FROM bookingDetail WHERE
                boothID='$bookingInfo[1]' and day='$bookingInfo[2]' 
                and username='$user'"
            );

            $num_rows = mysql_num_rows($result);

            if ($num_rows) {
                echo "Exist";
            } else {    
                $str = "INSERT INTO bookingDetail 
                    (username, custNo, eventID, date, day,
                    boothAlias, boothID, parentBookID) VALUES ('$user',
                    '$userID','$event',NOW(),'$bookingInfo[2]',
                    '$bookingInfo[0]','$bookingInfo[1]','$parentBookID');";

                $res = mysql_query($str);
                if ($res) {
                    echo 'Success';
                } else {
                    echo 'Failure';
                }

                $allBooth = substr($allBooth, 0, -2); 
                echo "<p>Booth(s): <strong>$allBooth</strong>&nbsp;
                    <strong>$user</strong>&nbsp;<strong>$event</strong>
                    <strong>$userID</strong></p>\r\n";
            }
        }
    } // close check $temp

    header("refresh:5;url=mybooking.php");
    echo "<img src='loading16.gif' style='margin-top:8px; float:left'/>";
    echo 'You\'ll be redirected in about 5 secs. If not, click 
        <a href="mybooking.php">here</a>.';     
} else {    
    echo "You do not make any booking";
    header("refresh:5;url=booking2.php");
    echo "<img src='loading16.gif' style='margin-top:8px; float:left'/>";
    echo 'You\'ll be redirected in about 5 secs. If not, click 
        <a href="booking2.php">here</a>.';  
}

请将代码包装在大约80个字符之后。在许多语言中,这是一个推荐的标准,必须水平滚动是相当不愉快的。@mike,我知道的没错!我试着尽可能地重新格式化它。。但是那家伙用标签代替空格,所以花了很长时间!现在我已经厌倦了格式化,甚至都不想去读了。我用的是回车和空格,哈哈。我怎么知道我应该用制表符或空格@。@对不起