我在MODEL中查询,从table1中选择包含数据的数据:
Column NOPE
DATA1
数据2
DATA3
然后我想从table1的结果中选择所有数据,但只获取第一行:
NOPE |总
nope1 | 20pax
如何循环所有行以在我的视图中选择并显示所有行?所以我得到的所有行都是这样的:
NOPE TOTAL
nope1 20pax
nope2 30pax
nope3 25pax
nope4 40pax
这是我的模特:
function test()
{
$query = $this->db->query("select nope from tb1");
if ($query->num_rows() > 0)
{
foreach ($query->result_array() as $row)
{
$nopen=$row['nope'];
$query2=$this->dbmssql->query("
select nope,
count(name) as total
from trans
where nope ='$nopen'
and date='2016-04-20'
group by nope ");
return $query2->result_array();
}
}
}
我的视图是:
<tbody>
<?php
$no=0;
foreach ($res as $row) { $no++?>
<tr>
<td><?php echo $no;?></td>
<td><?php echo $row['nope'] ;?></td>
<td><?php echo $row['total'];?> PAX</td>
</tr>
<?php
} ?>
</tbody>
请帮助我,非常感谢。
答案 0 :(得分:0)
你只得到第一行,因为你的foreach循环只执行一次,因为循环在return语句处退出。您需要将结果数组赋值给变量并在循环后返回该变量。
以下是您修改的代码,用于对$ query中的每个记录执行foreach循环。
function test()
{
$query = $this->db->query("select nope from tb1");
if ($query->num_rows() > 0)
{
foreach ($query->result_array() as $row)
{
$nopen=$row['nope'];
$query2=$this->dbmssql->query("
select nope,
count(name) as total
from trans
where nope ='$nopen'
and date='2016-04-20'
group by nope ");
$all_records[]=$query2->result_array();
}
return $all_records;
}
}
答案 1 :(得分:0)
万分感谢你,萨兰先生......
最后,我已经按照您的代码,并使用以下命令对我的视图进行更改:
<?php
$no=0;
foreach ($res as $row)
{
$no++;
?>
<tr>
<td><?php echo $no;?></td>
<td><?php echo $row[0]['nope'] ;?></td>
<td><?php echo $row[0]['total'];?> PAX</td>
</tr>
<?php
} ?>
现在我得到了所有记录的结果,...你是我的英雄......