2011-04-02 62 views
0

請檢查圖像,它將解釋視覺DATE重複,直到while循環讀取記錄

http://dubads.com/temp/Untitled-1.jpg

for ($index = 1; $index <= $numdays; $index++) { 

    $users = 
     "SELECT invoice_date, DAY(invoice_date) as invoiceday, " . 
     "sum(total_amount) as fullamount from invoices " . 
     "WHERE MONTH(invoice_date)='".$month."' AND YEAR(invoice_date)='".$year. 
     "' GROUP BY invoiceday"; 
    $res = mysql_query($users); 
    $row = mysql_num_rows($res); 

    while ($fetch = mysql_fetch_array($res)) { 

     echo "<tr id='".(($j % 2 == 0) ? 'row3' : 'row4')."'>"; 

     $explodedate = explode("-", $fetch['invoice_date']); 
     $days = $explodedate[2]; 
     $month1 = $explodedate[1]; 
     $year1 = $explodedate[0]; 

     $dates = date("jS", strtotime($fetch['invoice_date'])); 

     echo "<td style='text-align:left;padding-left:12px'>".$index. 
      "</td>"; 
     if ($index == $dates) { 

      echo "<td style='text-align:right;padding-right:12px'>". 
       $fetch['fullamount']."</td>"; 

     } else { 

      echo "<td style='text-align:right;padding-right:12px'>--</td>"; 

     } 

     echo "</tr>"; 
    } 
} 

$total = 
    "SELECT SUM(total_amount) as fulltotal from invoices where MONTH(invoice_date)='". 
    $month1."' AND YEAR(invoice_date)='".$year1."';"; 

$totres = mysql_query($total); 
$totfetch = mysql_fetch_assoc($totres); 
if ($totfetch['fulltotal'] == "") { 
    echo "<tr><td>NOTHING FOUND</td></tr>"; 
} else { 
    ECHO "<TR>"; 
    echo "<td style='color:#BD0000;padding-left:12px;border:1px solid #ccc;width:20%;height:40px;text-align:left'>TOTAL AMOUNT </td>"; 
    echo "<td style='color:#BD0000;border:1px solid #ccc;width:20%;height:40px;text-align:right;padding-right:12px'>".$totfetch['fulltotal']."</TD></TR>"; 

} 

echo "</table>"; 
+0

更多的解釋將是爲了即使有圖像!並且請通過刪除與問題無關的所有內容來縮短代碼。 – markus 2011-04-02 11:50:14

+0

他需要計算sql調用中特定日期的所有值的總和。 – Hossein 2011-04-02 12:15:04

+0

如果您看到圖像,則已經計算出總和。與查詢相關的金額和/或任何內容都沒有問題。正如我所說的問題是,這一天正在重複。發票的價值也放在正確的行(日期)中,唯一的是它不會輸出一個月。如果有多條記錄,則會重複該月份的日期,並且月份的重複次數與記錄的次數相同。 – khan 2011-04-02 12:21:44

回答

0

你已經得到一個循環計數$指數。我會電子書籍,使指數爲基礎的0,但是這不是你的問題:

你已經得到了外循環:

for ($index = 1; $index <= $numdays; $index++) { 
    ... 
} 

和你有內環,至極是做輸出每條記錄:

while ($fetch = mysql_fetch_array($res)) { 
    ... 
} 

因此,您每天輸出查詢返回的所有記錄。

我不能給你任何建議,如何解決這個問題,因爲我看不到,你想做什麼。也許你可以解釋,哪些記錄可以顯示,何時!

哦,你的html語法出錯了!一個ID必須是唯一的。在你的情況下,你應該使用class not id!

編輯:

啊...好吧,我想我可以想像,你的意思!

你想每天和你想還一個空行空天一行...

其實相當容易,我開始寫它......可能需要大約5分鐘!

編輯二:

for ($index = 0; $index < $numdays; $index++) 
{ 

    $sql = 
     'SELECT sum(total_amount) as fullamount from invoices ' . 
     'WHERE MONTH(invoice_date)=\'' . $month . '\' AND YEAR(invoice_date)=\'' . $year . 
     '\' And DAY(invoice_date)=\'' . ($index+1) . '\';'; 

    $res = mysql_query($sql); 
    $row = mysql_fetch_array($res)) 

    echo '<tr class=\'' . (($j % 2 == 0) ? 'row3' : 'row4') . '\'>' . "\n"; 
    echo '<td style=\'text-align:left;padding-left:12px\'>' . ($index+1) . '</td>' . "\n"; 

    if($row['fullamount']!=null&&$row['fullamount']!=''&&$row['fullamount']!=0) 
    { 
     echo '<td style=\'text-align:right;padding-right:12px\'>' . $row['fullamount'] . '</td>' . "\n"; 
    } 
    else 
    { 
     echo '<td style=\'text-align:right;padding-right:12px\'>--</td>' . "\n"; 
    } 

    echo '</tr>' . "\n"; 
} 

$sql = 
    'SELECT SUM(total_amount) as fulltotal from invoices where MONTH(invoice_date)=\'' . 
    $month . '\' AND YEAR(invoice_date)=\'' . $year . '\';'; 

$res = mysql_query($sqö); 
$fetch = mysql_fetch_array($res); 

if ($fetch['fulltotal'] == '') 
{ 
    echo '<tr><td>NOTHING FOUND</td></tr>'; 
} 
else 
{ 
    echo '<tr>' . "\n"; 
    echo '<td style=\'color:#BD0000;padding-left:12px;border:1px solid #ccc;width:20%;height:40px;text-align:left\'>TOTAL AMOUNT </td>' . "\n"; 
    echo '<td style=\'color:#BD0000;border:1px solid #ccc;width:20%;height:40px;text-align:right;padding-right:12px\'>' . $fetch['fulltotal'] . '</td>'; 
    echo '</tr>' . "\n"; 
} 

echo '</table>'; 

我希望,這可以幫助你!祝你好運!

+0

感謝您的回覆。你可以在http://qasqoos.nsegulf.com/daily_sales_temp.php查看這個工作。它將在本月展示。由於只有一天的發票,因此僅顯示一個月的日期。回到上個月,你會明白我的意思。關於id,它不會對錶格造成任何問題。 – khan 2011-04-02 15:05:54

+0

非常感謝。它正在工作。請檢查相同的鏈接。我用你的解決方案更新了代碼。我做的唯一更改是'\'和DAY(invoice_date)= \''。 ($ index + 1)。 '\';'; [TO]'\'和DAY(invoice_date)= \''。 $ index。 '\';';因爲它沒有顯示當月的發票金額。 – khan 2011-04-02 17:50:20