mysql查询只显示1个结果

时间:2011-04-12 15:48:16

标签: php mysql

我想根据今天的日期输出结果。 问题是,输出只显示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;

3 个答案:

答案 0 :(得分:2)

如果date字段的类型为datetime,则必须执行类似

的操作

SELECT ... WHERE DATE(date)= CURDATE()

请注意,我在查询中使用curdate()。没有必要在PHP中生成日期值。 MySQL完全有能力做到这一点。

答案 1 :(得分:1)

尝试在第二个SQL语句中添加GROUP BY语句。

  • 您应该按照要在最终结果中显示的元素的键进行分组

答案 2 :(得分:0)

使用聚合函数SUM将产生单个结果。您要求数据库获取所有行,然后总结一个值并为您提供值。

要查看许多值组的结果,您必须添加group by子句。