Php 选择过去30天的所有订单,并计算每天的订单数量

Php 选择过去30天的所有订单,并计算每天的订单数量,php,mysql,codeigniter,Php,Mysql,Codeigniter,我试图从一个客户那里选择过去30天的所有订单,因此我需要有客户id=“$customer\u id”,并计算该客户每天的订单数量 我需要以这样的数组结束 Array ( [1] => Array ( [orders] => 41 [date] => 2011-06-13 17:43:50 ) [2] => Array ( [ord

我试图从一个客户那里选择过去30天的所有订单,因此我需要有客户id=“$customer\u id”,并计算该客户每天的订单数量

我需要以这样的数组结束

Array ( 
  [1] => Array (
                 [orders] => 41
                 [date] => 2011-06-13 17:43:50 
               )
  [2] => Array (
                 [orders] => 11
                 [date] => 2011-07-13 17:43:50  
               )
  [4] => Array (
                 [orders] => 2
                 [date] => 2011-12-13 17:43:50  
               )

  and so on... for 30 days, if some day I dont have any orders, I dont need array or [orders] = 0 ...

}
我有一个名为“orders”的表,其中包含id、customer\u id和date字段

我发现这个问题,但它没有帮助我,或者我不理解它很好,顺便说一句,我是初学者。谢谢

p、 我所做的就是选择过去30天的所有订单

$this->db->query("SELECT * FROM orders WHERE customer_id=" . $customer['id'] . " AND date > ADDDATE(CURDATE(), INTERVAL -30 DAY)")->result_array();
使用MySQL函数从日期字段中提取日期,然后根据此结果分组。我没有尝试过,但以下查询应该可以工作:

SELECT COUNT(*) AS orders, date_field
FROM your_table
WHERE customer_id=$my_cusotmer
GROUP BY EXTRACT(DAY FROM date_field)

请澄清:您需要选择所有订单,还是只选择每天的订单数量?每天的订单总数,就像每天的访客一样,我需要在最后使用Sign flot创建图表。谢谢!,当我这样说它的工作原理时,我认为“选择COUNT(*)作为订单,datefrom orders,customer_id=41和date>ADDDATE(CURDATE(),INTERVAL-30 DAY)GROUP BY EXTRACT(DAY FROM date))“使用bacticks around date,因为它是大多数RDBMS(包括MySQL)的保留关键字。