2011-09-07 69 views
1

我試圖獲取一個月的銷售總額如何顯示mysql和查詢的值

$aug11 = mysql_query("SELECT SUM(price) FROM table WHERE sales_date LIKE '08/%/2011' "); 

當我回顯$aug11時,我得到一個資源ID #error。我也嘗試這樣做

$test1 = mysql_fetch_array($aug11); 

當我回應$test1時它只是說「數組」。

是否絕對有必要在原始查詢中使用sales_date放置GROUP,然後使用while循環來抓取數組並讓我回顯值?

除了8月份的「價格」總和之外,我真的不需要任何其他價值。

有人可以向我解釋如何在沒有while循環的情況下顯示我需要的值嗎?

+1

你正在抓取數組,因此test1是數組..考慮var_dump($ test1);或$ test1 [0]來訪問你正在尋找的值.. – jancha

+1

RTFM:http://php.net/mysql_fetch_array當一個函數被稱爲'fetch_array',也許你應該假設它可能實際上返回(驚喜! ) 數組。 –

+0

** 1。**銷售日期應該是日期,而不是varchar ** 2。**不要使用'like',使用'where sales_date BETWEEN'2011-08-01'AND'2011-08-31' ** 3。**如果您想要快速查詢,請在sales_date上放置索引。 – Johan

回答

4

使用該工具來獲取和值

$test1[0];

+0

非常感謝!最後一件事,有沒有辦法將值湊整到最接近的2位小數,例如2100.563000變爲2100.56? – Karl

+1

'round($ test1 [0],2);'RTFM! :-) – binarious

+0

你們真棒 – Karl

0
echo $test1[0]; // returns the sum 
0

$ aug11不是查詢字符串,它是一個查詢的結果。當您從結果中獲取數組時,它是一個值的數組,而不是標量。我想你想這樣做:

$query = "SELECT SUM(price) FROM table WHERE sales_date LIKE '08/%/2011'"; 
$aug11 = mysql_query($query); 
$row = mysql_fetch_array($aug11); 
$test1 = $aug11[0];