Array返回同一行的43个实例 - CodeIgniter PHP MySQL

时间:2017-03-30 12:36:57

标签: php mysql codeigniter

我们有表格(详情略去):

project {
    projectID,
    addressID
}

address {
    addressID,
    postcode,
    streetName,
    buildingNumber
}

查询返回项目地址的行

   $this->db->select('a.postcode, p.projectID, p.addressID');
   $this->db->from('address AS a , project as p');
   $this->db->join('project', 'p.addressID = a.addressID');
   $this->db->where('p.projectID', $projectID);

   /* RETURNS SEVERAL INSTANCES OF THE SAME ROW! ... */

   $projectAddress = $this->db->get()->result_array();
   echo sizeof($projectAddress).' -- ';
   print_r($projectAddress[0]['postcode']);

我们检查了数据库,它只包含项目表中的一个projectID和一个带有该projectID的地址记录。每个项目绝对不能有更多的地址,因为我们已经在数据库中考虑了这一点。

输出:

43 -- PA73 6LT

注意:我们知道我们可以将结果集限制为一行,但我们很好奇为什么它会返回这个任意数字--43。

干杯!

1 个答案:

答案 0 :(得分:3)

你复制了联接,试试这个:

$this->db->select('a.postcode, project.projectID, project.addressID');
$this->db->from('address AS a');
$this->db->join('project', 'project.addressID = a.addressID');
$this->db->where('project.projectID', $projectID);