怎样在V层循环再循环?
本帖最后由 mrcml945 于 2009-4-24 08:20 编辑如
类别1:
三国志
版块:
魏
蜀
吴
类别2:
信长野望
版块:
织田家
武田家
德川家
如果要用MVC模式做个循环,按上面的格式输出出来,怎么输出?因为算出来的类id:如$row->id 是在V层得出的 那怎么把V层的$row->id传到下一层子循环呢?我想了3个小时都没写出来 各位大大 教教小弟 不胜感激
在V层里通过循环能循环出 类别,但是该类别下的版块...我怎么也循环不出来 都抓到二给数组中就可以了。
建议,把这个过程放在控制器中实现。 我想问一下楼主,如果用纯 PHP,你怎么实现? 纯PHP很好实现啊
比如
$sql="select * from sanguo";
$res=mysql_query($sql);
echo "<table>";
while($Catrow=mysql_fetch_assoc($res))
{
echo "<tr>";
echo "<td>".$Catrow['name']."</td>";
echo "</tr>";
$sql2="select * from inCat where cat_id=".$Catrow['id'];
$res2=mysql_query($sql2);
$num2=mysql_num_rows($res2);
if($num2==0)
{
echo "<tr><td>类里没有子类</td></tr>";
}
else
{
while($inCatrow=mysql_fetch_assoc($res2))
{
echo "<tr><td>";
echo $inCatrow['inCatname'];
echo "</td></tr>";
}
}
}
echo "</table>"; 怎么在控制器里实现?
我在view里实现了 嵌套子循环
如:
<table align="center" width="978" border="1" align="left" cellpadding="1" cellspacing="1">
<?php foreach($category as $row): ?>
<tr>
<td align="left"><strong><?php echo $row->category; ?></strong></td>
</tr>
<?php foreach($forum as $row2):
if($row->id==$row2->cat_id): ?>
<tr><td align="left"><a href="<?php echo site_url('luntan/forum')."/".$row2->id ?>"><?php echo $row2->name; ?></a><br /><?php echo $row2->description; ?></td></tr>
<?php endif;
endforeach; ?>
<tr><td height="20px"></td></tr>
<?php endforeach; ?>
</table>
但是控制器里要怎么实现?大大教我! 我没看出来 CI 和 PHP 有什么区别,都是一样的循环。
循环请求数据库,现在也是循环请求数据库,然后把数据放到数组里,你之前是直接输出。
没什么区别,还是要用发散思维。 Hex大大,那你写个小片断出来 给我看下啊 不然我想到100岁都想不出 我没看出来 CI 和 PHP 有什么区别
Hex 发表于 2009-4-24 12:08 http://codeigniter.org.cn/forums/images/common/back.gif
我太赞同你这几话,CI和PHP就是没什么区别,而其他的PHP框架和PHP区别就大了,学其他PHP框架,相当于又学了一门新语言。 你需要构建一个具备所有数据的二维数组。
在查询数据库的时候,不要 echo,而是存到数组中,也就是在根类别的一个项目中加上子类别的内容,形如
array('根类别1' => array('此类别的信息' => 'xxxx', '子类数组' => array(.........)),
'根类别2' => array('此类别的信息' => 'xxxx', '子类数组' => array(.........)),
...
);
我认为构建上面这样的数组是编程基本功。 数组是编程基本功,数组也很常用吧。
页:
[1]
2