繁体   English   中英

使用 codeigniter 连接表技术

[英]join table technique using codeigniter

我的数据库中的伙计们,我有三个包含数据的表,如下面的链接所示。 在表class 和 subjects上, ssid 和 csidmembers的外键。

我使用左连接连接表,如下面的 model 代码所示。 当我为John claudius回显first_name、surname 和 class_name时,它出现了三次,而对于Alex massawe ,它只出现了一次。 但如果我添加Alex massawe的信息,结果将显示与主题内的Alex massawe信息一样多的次数。 我需要您的帮助,以便在为名称已在表成员中的人添加有关表主题的信息时,不会重复给出的信息。

数据库中的表

我的桌子

成员

sid 名字 姓氏
a001 亚历克斯马萨维
a002 约翰·克劳狄斯

class

id csid 类名
01 a001 婴儿班
02 a002 Class_one

科目

id ssid 主题名称
01 a002 数学
02 a002文学
03 a002 沟通技巧

代码



楷模:


function get_particular($sid){
$this->db->select('*');
$this->db->from('members m');
$this->db->join('subjects s', 'm.sid=s.ssid', 'left');
$this->db->join('class c', 'm.sid=c.csid', 'left');
$this->db->where('m.sid', $sid);
$query = $this->db->get();
返回 $query->result_array();
}

Controller:

function 特别($sid){
$sid=$this->uri->段(3);
$this->load->model('names');

$this->data["names"]=$this->names_rank->get_particular($sid);
$this->load->view("view/details", $this->data);
}

看法:

foreach($names as $name) {

echo $name['sid'].' '. $name['first_name'].' '. $name['姓氏'].' '.$name['class_name'];
}

如果删除循环该怎么办-更改视图

foreach($names as $name) {

echo $name['sid'].' '. $name['first_name'].' '. $name['surname'].' '.$name['class_name'];
}

echo $name['sid'].' '. $name['first_name'].' '. $name['surname'].' '.$name['class_name'];

或者,如果需要循环,则应该为每个成员和回显名称循环。 即foreach $ member echo $ names

成员(名字和姓氏)和class (类名)的详细信息显示在视图中。 因此,从查询中删除到subjects表的左连接。 如果同一成员有多个记录,则此连接是重复记录的原因

$this->db->select('*');
$this->db->from('members m');
$this->db->join('class c', 'm.sid=c.csid', 'left');
$this->db->where('m.sid', $sid);
$query = $this->db->get();
return $query->result_array();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM