Количество запросов Codeigniter () всего комментариев, объединяющих три таблицы

0

Я пытаюсь создать запрос для получения одного сообщения в блоге из моей таблицы в блоге и в то же время получить информацию от этого пользователя в таблице моих пользователей, которая была в порядке с помощью Join но теперь я хочу подсчитать общие комментарии этого блога опубликовать как итог, чтобы было три таблицы для запроса blog, users and comments

Но ниже кода отображается 3 записи в блоге с одним и тем же контентом и где поместить COUNT (*) как общую для таблицы комментариев, любое предложение было бы замечательным!

public function get_entry(){

        $id = $this->input->post('ID', true);


        $this->db->select('*, u.ID');
        $this->db->where('u.ID', $id)
         ->from('gb_blod as u')
         ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
         ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT');
         $result = $this->db->get();


            if($result->num_rows() > 0){

            return $result->result_array();


            }else{

                return false;
            }

    }
Теги:
codeigniter

3 ответа

1
Лучший ответ

Подсчитайте идентификатор комментария и сгруппируйте запрос по id блога.

public function get_entry(){

        $id = $this->input->post('ID', true);


        $this->db->select('u.*, a.*, count(b.ID) as total');
        $this->db->where('u.ID', $id)
         ->from('gb_blod as u')
         ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
         ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT')
         ->group_by('u.ID');
         $result = $this->db->get();


            if($result->num_rows() > 0){

            return $result->result_array();


            }else{

                return false;
            }

    }
  • 0
    Так что, куда вы положили count() спасибо, как я могу запросить все блоги? этот запрос возвращает только 1 результат
  • 0
    Удалите условие where из запроса $ this-> db-> where ('u.ID', $ id)
Показать ещё 3 комментария
1

Попытайтесь использовать это, вы можете изменить запрос в соответствии с вашим требованием: -

  $usr_flds = "count(u.ID) as count_rows";
  $this->db->select('usr_flds');
  $this->db->where('u.ID', $id)
 ->from('gb_blod as u')
 ->join('gb_users as a', 'u.user_email = a.email', 'LEFT')
 ->join('gb_comments as b', 'u.ID = b.journal_id', 'LEFT');
   $result = $this->db->get();
   return $res->num_rows();
0

попробуйте this.i надеюсь, что это сработает для вас.

$result = $this->db->get();
 $count = $result->get()->num_rows();
        return [$result, $count];
  • 0
    Я получил ошибку Fatal error: Call to undefined method CI_DB_mysqli_result::get()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню