在 codeigniter 中从关系数据库中获取数据
Fetching data from relational database in codeigniter
我有 2 个 table; table1 和 table2。它们都与彼此相关,具有共同的 groupid
我可以使用以下代码成功查询第二个 table:
$query = $this->db->query("SELECT * FROM `table2` WHERE `memberid`='$id'");
$data['relation'] = $query->result_array();
现在使用 groupid
结果我想查询第一个 table 即 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
以上代码仅 returns 最后一行 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 的新手,将不胜感激任何帮助。
谢谢,
乌帕尔
$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->result_array();如上所示在 forloop 内部
我有 2 个 table; table1 和 table2。它们都与彼此相关,具有共同的 groupid
我可以使用以下代码成功查询第二个 table:
$query = $this->db->query("SELECT * FROM `table2` WHERE `memberid`='$id'");
$data['relation'] = $query->result_array();
现在使用 groupid
结果我想查询第一个 table 即 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
以上代码仅 returns 最后一行 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 的新手,将不胜感激任何帮助。
谢谢, 乌帕尔
$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->result_array();如上所示在 forloop 内部