как выбрать контент базы данных за каждый месяц? - PullRequest
0 голосов
/ 08 апреля 2010

В моей базе данных есть таблица с именами посещений, например:

идентификатор IP дата_действия | отметка времени

я использую этот код для хранения посещений сайта

/* 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) );
        } 

работает хорошо. но мой клиент должен знать, сколько посещений у них в месяц. Как я могу это сделать ? танки.

1 Ответ

1 голос
/ 09 апреля 2010

Как насчет чего-то вроде:

$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();

Должны дать вам такие данные, как:

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