2016-03-21 141 views
0

我需要製作一份每月訪問報告,進一步細分爲每個月的每週摘要。我有一個SQL結果數組,其中包含月份編號,周編號和周開始和結束日期。如何使用if/else語句遍歷sql結果數組?

Month Week week start weekend 
1  1  12/27/2015 1/2/2016 
1  2  1/3/2016 1/9/2016 
... 
2  6  1/31/2016 2/6/2016 
2  7  2/7/2016 2/13/2016 

我想遍歷這個數組併爲每週創建表,如果它們都是同一個月的一部分的話。然後在月末,回覆每月彙總表,然後移動下個月。以下是一些示例代碼:

while ($weekarr=odbc_fetch_array($weekresult)) 
{ 

    $week1 = date('m.d.Y', strtotime($weekarr['weekstart'])); 
    $week2 = date('m.d.Y', strtotime($weekarr['weekend'])); 

    if ($weekarr['month']==$i) 
    { 


    echo "<table border='1' style='float: left' width=1 cellpadding='5'>"; 
    echo "<tr style='background-color:#484848;color:white'><td colspan='4'>Week&nbsp;of&nbsp;".$week1."&nbsp;to&nbsp;".$week2; 
    echo "<tr><td>Membership</td><td>Visitors</td><td>Purchased</td> <td>Comped</td></tr>"; 
    }//end if 

    else 
    { echo monthly table 
    $i++; 
    } 
} //end while 

1月結束後(當月= 1)後,每個新月的第一週將被跳過。如何在不跳過每個月的第一週的情況下增加$ i?

回答

3
while ($weekarr=odbc_fetch_array($weekresult)) 
    { 

     $week1 = date('m.d.Y', strtotime($weekarr['weekstart'])); 
     $week2 = date('m.d.Y', strtotime($weekarr['weekend'])); 

     if ($weekarr['month']==$i) 
     { 


     echo "<table border='1' style='float: left' width=1 cellpadding='5'>"; 
     echo "<tr style='background-color:#484848;color:white'><td colspan='4'>Week&nbsp;of&nbsp;".$week1."&nbsp;to&nbsp;".$week2; 
     echo "<tr><td>Membership</td><td>Visitors</td><td>Purchased</td> <td>Comped</td></tr>"; 
     }//end if 

     else 
     { echo monthly table 
     echo "<table border='1' style='float: left' width=1 cellpadding='5'>"; 
     echo "<tr style='background-color:#484848;color:white'><td colspan='4'>Week&nbsp;of&nbsp;".$week1."&nbsp;to&nbsp;".$week2; 
     echo "<tr><td>Membership</td><td>Visitors</td><td>Purchased</td> <td>Comped</td></tr>"; 
     $i++; 
     } 
    } //end while 

基本上,你要在故障狀態下

+0

謝謝你這麼多運行到輸出的成功條件一個星期! – zritter