2011-09-07 72 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];