我正在尝试从请求表中获取数据,但是我只需要表的特定行。因此通常情况下,我使用where('hospital_id',$hospital_id)
,但使用联接查询来查询用户的姓名和血型,因此当我尝试将WHERE
放入联接查询时,它会显示:
“此页面无法使用” HTTP错误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 }
}?>
答案 0 :(得分:0)
此消息错误可能来自其他代码。无论如何,您可以尝试使用
调试查询 ->get_compiled_select()
之前-> get()
更多信息https://www.codeigniter.com/userguide3/database/query_builder.html
答案 1 :(得分:0)
该页面无法工作,因为它具有多个表中相同的字段名称,只需更改字段名称即可。 有两个表血液和请求,当您使用联接查询时,它工作正常,但是当您应用“ where”条件时出现了问题。 两个表都具有相同的名称字段“ hospital_id”,因此“ where”条件不起作用并显示“页面不起作用”。请不要在不同的表中使用相同的字段名称
答案 2 :(得分:0)
您是否尝试过将 -> where('hospital_id',$ hospital_id) 放在 -> join( < / strong>?
$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);
继续努力!