我在我的控制器中有一个查询,其中我根据id搜索数据,它返回2个结果,然后我想根据先前的结果搜索一些数据并在视图中显示。它是这样的:
第一次查询:
$query_1 = $obj1->Searcher_Test($type);
function Searcher_Test($type)
{
$this->db->join('n_type', 'n_type.id_test = test.id_test');
$this->db->where('test.id_type', $type);
return $this->db->get('test');
}
第二个查询:
$query_2 = $obj2->Searcher_charact($id_test);<br>
function Searcher_charact($id_test) <br>
{<br>
$this->db->join('charact', 'charact.id_test = test.id_test');<br>
$this->db->where('test.id_test', $id_test);<br>
return $this->db->get('test');<br>
}<br>
第一个查询给我2个结果
id_test | test |id_type
------- |------ |--------
1 | one | 1
2 | two | 1
第二个查询给我3个结果
id_charact | charact | id_test
1 | moduls | 1
2 | direct | 1
3 | integer| 2
我为循环制作了这个
$contador = 0;
$list_test = array(array());
$contador_charact = 0;
$list_charact = array(array());
for ($i = 0; $i < $query_1->num_rows; $i++) {
$id_test = $query_1->row($i)->id_test;
$query_2 = $obj2->Searcher_charact($id_test);
for ($j = 0; $j < $query_2->num_rows; $j++) {
$list_charact[$contador_charact]['charact'] = $query_2->row($j)->charact;
$contador_charact ++;
}// for j
$list_test[$contador]['test'] = $query_1->row($j)->test;
$contador++;
}// for i
在视图中我做了这个,但它显示了我的所有记录,包括id_test = 1和id_test = 2
for ($i = 0; $i < $contador; $i++) {
<div class="layout-item-0">
<?php echo $list_test[$i]['test']; ?>
for ($j = 0; $j < $contador_charact; $j++) {
?>
<li>
<?php echo $list_charact[$j]['charact']?>
</li>
<?php
} //for j
</div>
} //for i
它显示的内容如下:
one
moduls
directs
integer
two
moduls
directs
integer
我想要那个节目
one
moduls
directs
integer
two
integer
我不知道我的查询是错误的,我的循环还是我的观点。请帮助,谢谢你。
答案 0 :(得分:0)
感谢大家。我找到了答案,我在我看来这样做:
for ($i = 0; $i < $contador; $i++) {
<div class="layout-item-0">
<?php echo $list_test[$i]['test']; ?>
for ($j = 0; $j < $contador_charact; $j++) {
if ($id_test == $list_charact[$j]['id_test']) { // <--- this is what I add
?>
<li>
<?php echo $list_charact[$j]['charact']?>
</li>
<?php
}//del if
} //for j
</div>
} //for i