Пишу небольшой блог...работаю с Codeigniter...есть задумка и часть реализации по вопросу подсчета статей в категориях и вывода их в блоке(рядом с категорией)... Получилось следующее: В модели написал метод подсчёта примерно так- function count_art (что передается?) { $this->db->where('category',что передается?); $this->db->from('articles'); return $query->db->count_all_results(); } В виде right_block_view выводятся категории в цикле....какую переменную мне нужно передать в метод чтоб выводить значение для каждой категории своё?
Смотри у тебя есть категории, по простому id и category_name сделай ещё одну колонку для категорий, например count_articles и там храни кол-во статей в этой категории а при добавлении статьи в категорию прибавляй значение count_articles при удалении уменьшай и т.д.
Спасибо за ответ вот допустим теперь структура моей таблицы с категориями: id title title_en keywords count_articles 1 Логотипы logotype ключ 0 2 Веб-дизайн web ключ 0 3 Полиграфия poly ключ 0 4 Анимация anim ключ 0 5 Фирстиль firstyle ключ 0 И есть для каждой категории свой метод в модели(который подсчитывает кол-во статей в категории) Например : Код (Text): function count_art () { $this->db->where('category','logotype'); $this->db->from('articles'); return $query->$this->db->count_all_results(); } Как мне теперь занести результат работы данного метода(наверное через update) в ячейку таблицы(count_articles-поле logotype)??? Заранее спасибо за ответ....
Смотрим в документацию http://www.codeigniter.com/user_guide/general/models.html и делаем поиск по слову update $this->db->update('название таблицы', $this, array('count_articles' => 'число записей'));
Про update я знаю...а что подставлять вместо числа?то что получил в функции подсчёта? через что?переменная? Добавлено спустя 24 минуты 58 секунд: Код (Text): function get_count_art() { $this->db->where('category','logotype'); $this->db->from('articles'); return $query = $this->db->count_all_results(); } function update_count_articles() { $this->db->update('categories', $this, array('count_articles' => $this->articles_model->get_count_art())); } Если сделать что-то такое то выдаст ошибку- A Database Error Occurred You must use the "set" method to update an entry. Filename: Y:\home\sait1.loc\www\system\database\DB_active_rec.php Line Number: 1272
А что тебе нужно записать в базу? То и подставляй. На счёт ошибки, то читай документацию, как там советуют обновлять запись. В чём конкретно проблема при чтении документации?
Так не делают. Не заносят подсчет строк бд в бд, в этом нет смысла. Чтобы узнать не изменилось ли количество статей - надо еще раз посчитать чтобы сравнить. А зачем тогда сохранять - посчитали - сразу выводите. Иначе вносите новый счет при каждом добавлении\удалении статьи через админку. А нафига вы мучаете объекты для операции типа update table set column=value BDSM?
Идеал не достижим. Просто храни кол-во статей в категории и уменьшай это количество при удалении статьи, а при добавлении увеличивай.