Как использовать «ГДЕ» в SQL-запросе «JOIN» - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь получить данные из таблицы запросов, но мне нужна только определенная строка таблицы. как правило, я использую where('hospital_id',$hospital_id), но я использую запрос соединения для имени пользователя и группы крови, поэтому, когда я пытаюсь ввести WHERE в запрос соединения, он показывает:

«Эта страница не работает» HTTP ERROR 500.

Я пытаюсь поставить WHERE любым другим способом, например: после from, после join, но результат остался прежним.

Вот моя модель:

 $hospital_id =$this->session->userdata('hospital_id');

 $query=$this->db

 ->select('*, user.name as h_name, blood.btype as blood_type')
 ->where('hospital_id',$hospital_id)
 ->from('request')

->join('user', 'user.id= request.user_id')
->join('blood', 'blood.id= request.blood_id')


->get()->result(); 

Вот мой контроллер:

   public function view_req()
   {
     if(!$this->session->userdata('hospital_id'))
       {
         return redirect('Login/loginview_load2');

       }
      else {
        $this->load->model('Partner_model');
       //$data['title']="partner profile";
       $data['all_blood']=$this->Partner_model->get_id_req();
       $this->load->view('view_request',$data);
      }
   }

вот мой взгляд:

 <?php if(count($all_blood>0))
  { $i=0;
  foreach ($all_blood as $user) {
  $i++;
  ?>
  <tr>
  <td><?php echo $i ?></td>
  <td><?php echo $user->user_id ?></td>
    <td><?php echo $user->h_name ?></td>
  <td><?php echo $user->blood_id?></td>
  <td><?php echo $user->blood_type?></td>

  <?php }
  }?>

Ответы [ 3 ]

0 голосов
/ 04 января 2019

страница не работает, потому что она имеет то же имя поля, что и более 1 таблицы, просто измените имя поля и оно отлично работает. есть две таблицы blood & request, когда вы используете запрос соединения, он работает отлично, но возникла проблема, когда вы применили условие «где». обе таблицы имеют одно и то же поле с именем «hospital_id», поэтому условие «where» не работает и показывает, что «страница не работает». Пожалуйста, не используйте одно и то же имя поля в разных таблицах

0 голосов
/ 05 января 2019

Вы пытались поместить -> где ('hospital_id', $ hospital_id) после присоединения -> (?

$this->db->select("*, user.name as h_name, blood.btype as blood_type");
$this->db->from('request');
$this->db->join('user', 'user.id= request.user_id');
$this->db->join('blood', 'blood.id= request.blood_id');
$this->db->where('hospital_id',$hospital_id);

Продолжайте в том же духе!

0 голосов
/ 04 января 2019

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

    ->get_compiled_select()

до -> get ()

Дополнительная информация https://www.codeigniter.com/userguide3/database/query_builder.html

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