Я разрабатываю API с помощью Codeigniter, и в этом API пользователи могут отмечать себя. Мне нужно отобразить 10 самых популярных тегов (наиболее часто используемых тегов). Как я могу это сделать?
Обновить
Таблица тегов содержит:
id, user_id, tag, created_at, updated_at
2 ответа
Джонатан, в зависимости от вашей настройки решение будет отличаться, я собираюсь предложить что-то немного отличное от того, как выглядит ваша структура таблицы, вы можете использовать это, если хотите.
.--------------. .-------------.
| userTags | | tags |
.--------------. .-------------.
| id | | id |
| user_id | | tagName |
| tag_id | .-------------.
.--------------.
Чтобы добавить тег в вашу базу данных: $ data = array ('tagName' => 'Mr. Niceguy'); $ this-> db-> insert ('теги' => $ data);
Чтобы добавить тег к своему пользователю, вы можете использовать в модели следующее:
$data = array('user_id' => $uId, 'tag_id' => 1);
$this->db->insert('userTags', $data);
Чтобы получить наиболее часто используемые теги:
$this->db->select('tag_id');
$this->db->order('tag_id DESC');
$this->db->limit(10);
$this->db->join('tags', 'userTags.tag_id = tags.id');
$this->db->get('userTags');
Изменить:
Если вам нужно использовать свою настройку, сделайте это вместо этого:
$this->db->order_by('count(tag)', 'DESC');
$this->db->group_by('tag', 'DESC');
$tags = $this->db->get('userTags');
foreach($tags->result() as $tag) {
var_dump($tag->tag);
}
Вам нужно будет использовать комбинацию order_by()
и group_by()
. Сгруппируйте их по имени тега, а затем отсортируйте их по количеству. Я не уверен, что вы можете упорядочить по счетчику в ActiveRecord, поэтому вам может потребоваться использовать необработанный SQL.
Похожие вопросы
Новые вопросы
codeigniter
CodeIgniter - это среда разработки приложений - набор инструментов - для людей, создающих веб-сайты с использованием PHP. Созданный EllisLab при поддержке BCIT, он теперь является проектом CodeIgniter Foundation. Платформа реализует модифицированную версию шаблона проектирования модель-представление-контроллер. Используйте этот тег, чтобы задать вопросы о классах, методах, функциях, синтаксисе и использовании CodeIgniter. Существует две основные версии: 3.x и 4.x, отвечающие различным системным требованиям.