我想根据今天的日期输出结果。 问题是,输出只显示1个结果?
database report table:
id | r_amount | id_therapist | date | time | t_tanning | t_deep
// this query works fine echoing all the result if i use while loop
$today = date('Y-m-d');
(1) $q = $db->query("SELECT * FROM report WHERE date='$today' ORDER BY date ASC")
// this query only show 1 output result?
(2) $q = $db->query("SELECT *, SUM(IF(t_tanning LIKE 'Pro Tan%', r_amount, 0)) AS totalProTan FROM report WHERE date='$today' ORDER BY date ASC")
while($r = $q->fetch_array(MYSQLI_ASSOC)) :
// (1) echoing all result from database
echo $r['r_amount'].'<br>';
// (2) echoing only 1 result????
echo $r['totalProTan'].'<br>';
endwhile;
答案 0 :(得分:2)
如果date
字段的类型为datetime
,则必须执行类似
SELECT ... WHERE DATE(date
)= CURDATE()
请注意,我在查询中使用curdate()
。没有必要在PHP中生成日期值。 MySQL完全有能力做到这一点。
答案 1 :(得分:1)
尝试在第二个SQL语句中添加GROUP BY
语句。
答案 2 :(得分:0)
使用聚合函数SUM将产生单个结果。您要求数据库获取所有行,然后总结一个值并为您提供值。
要查看许多值组的结果,您必须添加group by子句。