DATE重复,直到while循环读取记录

问题描述:

请检查图像,它将解释视觉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,但是这不是你的问题:

你已经得到了外循环:

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