2016-08-08 39 views
-1

Hier ist meine Tabelle und ich muss alle Daten aus meiner MySQL-Datenbank abrufen, die die 30 Tage anzeigen, die die Gesamtzahl der Bestellungen pro Tag zählen. Und es wird auch einen Datumsbereich geben.Wie erhalten Sie alle Bestellungen der letzten 30 Tage mit Datumsbereich mit Codeigniter PHP?

Beispiel 1: Aktuelles Datum ist 8. August 2016. ich die letzten 30 Tage vom 8. August angezeigt werden muß, 2016.

Order table 

id | customer_id | num_of_order |date 
---+-------------+--------------+--------  
1 | 10001 |  1  | 2016-08-08 07:23:50 
2 | 10002 |  4  | 2016-08-07 11:33:50 
3 | 10003 |  2  | 2016-08-06 15:44:50 //same day 
4 | 10001 |  5  | 2016-08-06 20:50:50 //same day 
5 | 10004 |  3  | 2016-08-04 11:17:50 

jetzt erwartete Ausgabe wird angezeigt:

array (
    [0] => array (
     [date] => 2016-08-08 
     [total_orders] => 1 
    ) 
    [1] => array (
     [date] => 2016-08-07 
     [total_orders] => 4 
    ) 
    [2] => array (
     [date] => 2016-08-06 
     [total_orders] => 7 
    ) 
    [3] => array (
     [date] => 2016-08-05 
     [total_orders] => 0 //no orders but still need to include in the output 
    ) 
    [4] => array (
     [date] => 2016-08-04 
     [total_orders] => 3 
    ) 
    //and so forth (July 09, 2016)..... 
) 

Gibt es einen PHP-Codeigniter-Code dafür?

+1

[Was haben Sie versucht, so weit?] (Http://whathaveyoutried.com) Bitte [Bearbeiten] Ihre Frage ein [MCVE] des Codes zu zeigen, dass Sie Probleme mit haben, wir dann kann versuchen, mit dem spezifischen Problem zu helfen. Sie sollten auch [fragen] lesen. –

Antwort

0
$this->db->select("DATE_FORMAT(date,'%Y-%m-%d') as covered_date,count(date(date)) AS total_order"); 
$this->db->from('order'); 
$this->db->where('date > DATE_SUB("2016-08-08" , INTERVAL 30 DAY)'); 
$this->db->group_by("date(date)"); 
$query = $this->db->get(); 
$result = $query->result_array(); 
$start_date = date('Y-m-d', strtotime('-30 day', strtotime($end_date))); 
$return = array(); 

while (strtotime($start_date) <= strtotime($end_date)) { 
    $return[] = $start_date; 
    $start_date = date("Y-m-d", strtotime("+1 day", strtotime($start_date))); 
} 
print_r($return);