CodeIgniter выбрать данные и рассчитывать - PullRequest
1 голос
/ 26 марта 2012

В CodeIgniter я делаю выборку, получая некоторые посты в блоге.Но я также хочу получить общую реакцию поста блога с функцией count ().Но когда я делаю это, он возвращает только одну запись.

Пример:

    $this->db->select('idee_id, titel, omschrijving, type, top_idee, tbl_users.foto as user_foto');
    $this->db->from('tbl_idee');
    $this->db->join('tbl_types', 'tbl_idee.type_id = tbl_types.type_id');
    $this->db->join('tbl_users', 'tbl_idee.user_id = tbl_users.user_id');
    $this->db->join('tbl_comments', 'tbl_users.user_id = tbl_comments.user_id');
    $this->db->order_by('post_datum', 'DESC');
    $this->db->limit(10);
    $q = $this->db->get();

Теперь я получаю только посты без общей реакции одного поста.Как я могу это исправить?С помощью выбора в выборе.?

Спасибо

Ответы [ 3 ]

3 голосов
/ 26 марта 2012

Сначала вам нужно заставить базу данных выбрать количество комментариев к каждому сообщению в блоге.

$this->db->select('idee_id, titel, omschrijving, type, top_idee,
      tbl_users.foto as user_foto, COUNT(*) AS comments',FALSE);

обратите внимание на второй параметр, он не позволяет codeigniter анализировать функцию COUNT()

, которой вы являетесьизвлечение данных из поста блога вместе с его комментариями, поэтому вам нужно GROUP BY данные, которые делают пост блога уникальным:

$this->db->group_by('idee_id,titel, omschrijving, type,
      top_idee, tbl_users.foto');

остальная часть вашего запроса должна быть правильной

0 голосов
/ 08 января 2017

Прежде всего проверьте все свои таблицы. убедитесь, что у всех есть несколько записей, потому что вы объединяете их с помощью простого запроса соединения. если у одного из них меньше записей, чем у другого. затем пользователь левый или правый запрос на присоединение.

еще для вашего результата.

$q = $this->db->get();
return $q->result_array();

и для подсчета записей

$q = $this->db->get();
$count = $q->num_rows();

Он также будет считать ваши записи.

0 голосов
/ 26 марта 2012

Если вы знаете сырой SQL, чтобы получить необходимые данные.Лучше всего сделать следующее:

$this->db->query('YOUR QUERY HERE');

Таким образом, у вас есть свобода самостоятельно создавать SQL без использования методов CI db.Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...