我在使用CodeIgniter显示记录时遇到问题。我使用纯PHP代码完成了这项工作,但我很困惑如何使用CodeIgniter来完成它。
Doctor Doctor Specialty
Rashid Cardiology, Gastroenterology , Neurology
控制器代码:
public function appointmentSixStats(){
$this->load->view('admin/dashboard/appointment-stats-doctor',$this->data);
}
我的表格结构:
tbl_doctor
tbl_specialty
(包含所有专业)tbl_doctor_specialty
(包含所有医生指定的专业)tbl_appointment
(包含所有医生预约)问题:
我愿意将每个医生记录显示为以逗号分隔的价值以及他们的专业。
答案 0 :(得分:2)
您可以使用GROUP_CONCAT(expr)如何不建议使用,因为默认设置为1024个字符的字符长度限制但可以增加
$sql="SELECT d.* ,
GROUP_CONCAT(s.title) specialities,
GROUP_CONCAT(a.title) appointments
FROM tbl_doctor d
JOIN tbl_doctor_specialty ds ON (d.id = ds.doctor_id)
JOIN tbl_specialty s ON (s.id = ds.speciality.id)
JOIN tbl_appointment a ON (a.doctor_id =d.id)
GROUP BY d.id";
$result=$this->db->query($sql);
return $result->result();
答案 1 :(得分:1)
您可以从查询本身获取它。
试试这段代码。
$this->db->select('d.name, GROUP_CONCAT(s.specialty SEPARATOR ",") as doc_specialty');
$this->db->from('tbl_doctor d');
$this->db->join('tbl_doctor_specialty ds', 'd.id = ds.doctor_id');
$this->db->join('tbl_specialty s', 's.id = ds.specialty_id');
$this->db->group_by("d.id");
$query = $this->db->get();