2011-04-12 152 views
0

我想根據今天的日期輸出結果。 問題是,輸出只顯示1個結果?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; 
+2

你知道我們有**沒有想法**你的數據庫看起來像什麼或它是什麼 – Neal 2011-04-12 15:49:10

+0

@尼爾抱歉:)沒有必要實際顯示數據庫表:(只是查詢問題 – tonoslfx 2011-04-12 15:51:19

回答

2

如果datedatetime類型的,你必須做一些像

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

請注意,我在查詢中使用了curdate()。沒有必要在PHP中生成日期值。 MySQL本身完全有能力做到這一點。

0

集合函數SUM的使用將導致單個結果。您要求數據庫獲取所有行,然後總結一個值並給出值。

要查看許多組值的結果,您必須添加group by子句。

1

嘗試向第二個SQL語句添加GROUP BY語句。

  • 你應該在最終結果中顯示你所想要的elemnts的鍵組
+0

謝謝我試過那個。但是我想顯示所有的結果不是GROUP BY :) – tonoslfx 2011-04-12 15:54:12

+0

@ boyee007那麼你在這裏失去了SUM函數的效果。要麼刪除它或添加一個「GROUP BY」語句爲您的結果顯示超過1行 – BigFatBaby 2011-04-12 15:56:17

+0

我想我沒有選擇謝謝;) – tonoslfx 2011-04-12 15:57:34