从codeigniter中的关系数据库中获取数据

时间:2015-02-04 14:29:18

标签: php mysql codeigniter

我有2张桌子; table1和table2。它们都与公共groupid相互关联我能够使用以下代码成功查询第二个表:

$query = $this->db->query("SELECT * FROM `table2` WHERE `memberid`='$id'"); 
$data['relation'] = $query->result_array(); 

现在使用groupid结果我想查询第一个表,即table1

我尝试了以下方法,没有取得任何成功:

for($ii = 0 ; $ii < count($data['relation']) ; $ii++){
        $id = $data['relation'][$ii]['groupid'];
        $query1 = $this->db->query("SELECT * FROM `group` WHERE `id`='$id'");
}             

$data1['group'] = $query1->result_array();

$fine = array_merge($data, $data1);
print_r(count($fine)); // the count result is 1 ideally should be 2

以上代码仅返回table1的最后一行,但我正在寻找所有结果。

当我在“for”循环中运行上面的代码时,它显示了33的计数:

    for($ii = 0 ; $ii < count($data['relation']) ; $ii++){
        $id = $data['relation'][$ii]['groupid'];
        $query1 = $this->db->query("SELECT * FROM `group` WHERE `id`='$id'");

$data1['group'] = $query1->result_array();

$fine = array_merge($data, $data1);
print_r(count($fine)); // the count result is 33 ideally should be 2
}             

我知道如何在核心php中实现这一点,但不太确定如何在CI中实现它。我是CI的新手,非常感谢任何帮助。

谢谢, Utpal

1 个答案:

答案 0 :(得分:0)

$ok = array();
     for($ii = 0 ; $ii < count($data['relation']) ; $ii++){
            $id = $data['relation'][$ii]['groupid'];
            print_r ($id);
            echo "<br>";
            $query1 = $this->db->query("SELECT * FROM `group` WHERE `id`='$id'");
            $data1['group'][$ii]= $query1->result_array();

    }
        //print_r($data1['group']);
        $fine = array_merge($data, $data1);
        print_r($fine);

你需要在这个for循环之外创建一个数组($ data1)并定义$ query-&gt; result_array();在forloop里面,如上所示