在Codeigniter中,获取包含ID号的行数,该ID号是另一个表中的主键

时间:2016-04-26 21:27:13

标签: php mysql codeigniter

我有两张桌子,第一个名字是这样的组织:

身份证明org_name
1 - Congress1
2 - Congress2
3 - Congress3
4 - Congress4

和另一张桌子是这样的访客:
ID |访客| organizationID
1 - W. Rooney - 1
2 - S. Aguero - 1
3 - C. Ronaldo - 2
4 - L. Messi - 4

我的问题是:对于每个组织ID,我如何计算访问者表中包含organizationalID的行:

organizationsID = 1>访客中的行数= 2组织ID = 2>访客中的行数= 1组织ID = 3>访客中的行数= 0
organizationID = 4>访客中的行数= 1
这个问题出现在Codeigniter框架中。 我的模特功能:

$dbase->select('*');
$dbase->from('organizations');
$dbase->order_by("org_startdate", "desc"); 
$query = $dbase->get(); 

我的控制器功能:

$this->load->model('organizations_m');
$data['organizations'] = $this->organizations_m->organizations();
$this->load->view('organizations_v', $data);

最后在我看来,我列出了我的组织:

foreach ($organizations as $org){
echo "Organization Name:".$org->org_name;
echo "Count of visitors that joining to this Organization".MY PROBLEM IS HERE;
}

我的最终结果应该在浏览器中显示如下:
组织名称:Congress1
vis ...的数量:2。
组织名称:Congress2
vis ...的数量:1。
组织名称:Congress3
vis ...的数量:0

组织名称:Congress4
见数......:1

感谢您的回复..

1 个答案:

答案 0 :(得分:0)

在你的模特中:

$dbase->select('o.org_name,COUNT(v.id) AS no_visitors', FALSE);
$dbase->from('organizations o');
$dbase->join('visitors v', 'o.id = v.organizationID', 'left');
$dbase->group_by('o.id');
$dbase->order_by("org_startdate", "desc"); 
$query = $dbase->get();

然后在你看来

foreach ($organizations as $org){
echo "Organization Name:".$org->org_name;
echo "Count of visitors that joining to this Organization".$org->no_visitors;
}