2010-04-08 13 views
0

i ont la table visites nommée dans ma base de données comme celle-ci:comment sélectionner le contenu de base de données pour chaque mois?

id ip action_date | time_stamp

i utiliser ce code pour les visites du site du magasin

/* Hits table has an auto-incrementing id and an ip field */ 

     // Grab client IP 
     $ip = $this->input->ip_address(); 

     // Check for previous visits 
     $query = $this->db->get_where('visits', array('ip' => $ip), 1, 0); 
     $query = $query->row_array(); 

     if (count($query) < 1) 
     { 
      // Never visited - add 
      $this->db->insert('visits', array('ip' => $ip)); 
     } 

il fonctionne bien. mais mon client a besoin de savoir combien de visites ils ont en mois. Comment puis je faire ça ? réservoirs .

Répondre

1

Que diriez-vous quelque chose comme:

$months = $this->db->select(' 
    COUNT(`id`) AS "count", 
    DATE_FORMAT(FROM_UNIXTIME(`action_date`),"%b-%Y") AS "month"',false 
) 
->group_by('month') 
->where(array('ip' => $ip)) 
->order_by('action_date','desc') 
->get('visits')->result(); 

devrait vous donner des données telles que:

+-------+----------+ 
| count | month | 
+-------+----------+ 
| 505 | Apr-2010 | 
| 252 | Mar-2010 | 
| 426 | Feb-2010 | 
| 201 | Jan-2010 | 
| 211 | Dec-2009 | 
+-------+----------+ 
+0

J'ai besoin où la déclaration pour le mois parce que je dois montrer le nombre de visites que j'ai pour ce mois-ci comment beaucoup de visites cette adresse $ ip ont. Je ne sais pas pour pointer mois dans où déclaration dans le champ action_date si je peux faire que tout ira bien. – mehdi