2013-03-20 2 views
0

У меня есть проблема при отображении категорий из базы данных.Codeigniter подсчитывает количество статей в одной категории при включении категорий

Сначала у меня есть таблица под названием «Видео», в которой хранятся som-видео, такие как v_name, v_description и category_name.

Во второй таблице, называемой «Категории», где хранятся категории-информация, такая как c_name и c_description.

OFC У меня есть идентификаторы в каждой таблице :)

Но теперь я хочу, чтобы перечислить категории и в том же запросе посчитать каждую videoitem в каждой категории.

Это код, и я не могу понять, как это сделать в модели сейчас и позже, как отображать числа в файле вида, поэтому помогите мне!

Спасибо за ваше время и поддержку: D

$this->db->select('c.*'); 
    $this->db->from('categories as c'); 
    $this->db->join('videos as v', 'c.c_name = v.v_category', 'right'); 
    return $this->db->get()->result_array(); 
+1

Можете ли вы разместить SQL для создания двух таблиц базы данных? Это поможет создать скрипку/демонстрацию. –

+0

Hum ... В таблицы категорий я есть 3 поля: Категории: c_id 'NUM' Первичный ключ c_name 'текст' c_description 'текст' Во второй таблицы Видео Видео: v_id, NUM, первичный Ключ v_name, текст v_description, текст category_name, текст Так что, если у меня есть 3 cateories в categories_table под названием «Действие», «Драма», «Thriller» я хочу перечислить эти категории на странице категории. Я могу перечислять категории без каких-либо проблем, но я хочу показать, сколько видеороликов есть в каждой категории с помощью таблицы Видео и поля category_name. –

+0

всегда лучше обновить вопрос, а не предоставлять подробные сведения о вопросе в комментарии. – ekims

ответ

0

Для вашего кода для работы вам понадобятся два изменения:

  • Сначала вы присоединиться тип должен быть «левое соединение». Тогда вы все равно получите результат подсчета (0), даже если в категории нет видео.
  • Во-вторых, вам нужно сгруппировать результаты, чтобы использовать счетчик совокупной функции().

Try с этим:

$this->db 
->select('categories.c_name, COUNT(videos.id) as num_videos') 
->from('categories') 
->join('videos', 'categories.c_name = videos.v_category', 'left') 
->group_by('categories.c_name'); 

Кроме того, вы должны пересмотреть свой дизайн DB. Если у вас есть столбцы id в обеих таблицах (я предполагаю, что это первичный ключ), вы должны определить взаимосвязь между таблицами (внешними ключами), используя столбец id, а не имя.

+0

как я эхо из номера? И могу ли я получить дополнительную информацию из категорий, таких как описание? Да, я создам связь между id-полями для будущего –

+0

ДА - Вы решили это JAVI! Im очень благодарен за ваше время и поддержку! –

Смежные вопросы