Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在codeigniter中从关系数据库获取数据_Php_Mysql_Codeigniter - Fatal编程技术网

Php 在codeigniter中从关系数据库获取数据

Php 在codeigniter中从关系数据库获取数据,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有两张桌子;表1和表2。这两个表都使用一个公共groupid相互关联。我可以使用以下代码成功地查询第二个表: $query = $this->db->query("SELECT * FROM `table2` WHERE `memberid`='$id'"); $data['relation'] = $query->result_array(); 现在,我想使用groupid结果查询第一个表,即table1 我尝试过以下方法,但没有成功: for($ii = 0 ; $

我有两张桌子;表1和表2。这两个表都使用一个公共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
我知道如何在核心php中实现这一点,但不太确定如何在CI中实现这一点。我是新来的CI,任何帮助都将不胜感激

谢谢, 乌特帕尔


您需要在此for循环之外创建一个数组$data1,并定义$query->result\u数组;一般来说,如果运行嵌套循环,并且内部查询使用来自查询的数据,那么几乎总是应该将查询作为单个联接查询重新编写。当你写这些查询的时候,你可能会感到脆弱。考虑一下,或者使用框架没有什么意义。感谢SjAGR和贾景晖会记住这一点。
    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
}             
$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);