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,但是这不是你的问题:
你已经得到了外循环:
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>';
我希望,这可以帮助你!祝你好运!
感谢您的回复。你可以在http://qasqoos.nsegulf.com/daily_sales_temp.php查看这个工作。它将在本月展示。由于只有一天的发票,因此仅显示一个月的日期。回到上个月,你会明白我的意思。关于id,它不会对表格造成任何问题。 – khan 2011-04-02 15:05:54
非常感谢。它正在工作。请检查相同的链接。我用你的解决方案更新了代码。我做的唯一更改是'\'和DAY(invoice_date)= \''。 ($ index + 1)。 '\';'; [TO]'\'和DAY(invoice_date)= \''。 $ index。 '\';';因为它没有显示当月的发票金额。 – khan 2011-04-02 17:50:20
更多的解释将是为了即使有图像!并且请通过删除与问题无关的所有内容来缩短代码。 – markus 2011-04-02 11:50:14
他需要计算sql调用中特定日期的所有值的总和。 – Hossein 2011-04-02 12:15:04
如果您看到图像,则已经计算出总和。与查询相关的金额和/或任何内容都没有问题。正如我所说的问题是,这一天正在重复。发票的价值也放在正确的行(日期)中,唯一的是它不会输出一个月。如果有多条记录,则会重复该月份的日期,并且月份的重复次数与记录的次数相同。 – khan 2011-04-02 12:21:44