Джонатан, в зависимости от ваших настроек решение будет отличаться, я собираюсь предложить что-то немного отличное от того, как выглядит ваша таблица, вы можете использовать ее, если хотите.
.--------------. .-------------.
| userTags | | tags |
.--------------. .-------------.
| id | | id |
| user_id | | tagName |
| tag_id | .-------------.
.--------------.
Чтобы добавить тег в вашу базу данных: $ data = array ('tagName' => 'Mr. Niceguy');$ this-> db-> insert ('tags' => $ data);
Чтобы добавить тег для своего пользователя, вы можете использовать следующее в модели
$data = array('user_id' => $uId, 'tag_id' => 1);
$this->db->insert('userTags', $data);
Toполучить наиболее часто используемые теги:
$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);
}