На моем веб-сайте я хотел бы создать список «архив», чтобы классифицировать мои сообщения.
Таблица моих posts
настроена так: id | post_title | сообщение | публиковать | год | месяц
В настоящее время эта функция модели тянет сообщения:
function getNews(){ $data = array(); $this->db->order_by("id", "desc"); $Q = $this->db->get('posts'); if ($Q->num_rows() > 0){ foreach ($Q->result_array() as $row){ $data[] = $row; } } $Q->free_result(); return $data; }
Однако, возможно ли создать список, например, следующий?
July (12) June (5) May (2)
Итак, он перечисляет месяц и количество сообщений в этом месяце?
Все мои попытки до сих пор закончились разочарованием и слезами. Любая помощь будет принята с благодарностью.
Попробуй это
SELECT `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month` =p.`month`) AS c FROM `posts` p GROUP BY p.`month` ORDER BY `month` function getNews(){ $data = array(); $Q = $this->db->query('SELECT `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month`=p.`month`) AS c FROM `posts` p GROUP BY p.`month`ORDER BY `month`'); if ($Q->num_rows() > 0){ foreach ($Q->result_array() as $row){ $data[] = $row; } } $Q->free_result(); return $data; }
Это не связано с кодировкой, но я все равно отвечу.
используйте SELECT Count (*), затем закажите «месяц», напишите запрос и запустите его, используя
http://ellislab.com/codeigniter/user-guide/database/queries.html