mrcml945 发表于 2009-4-24 00:05:26

怎样在V层循环再循环?

本帖最后由 mrcml945 于 2009-4-24 08:20 编辑


类别1:   
三国志
版块:




类别2:
信长野望
版块:
织田家
武田家
德川家

如果要用MVC模式做个循环,按上面的格式输出出来,怎么输出?因为算出来的类id:如$row->id 是在V层得出的 那怎么把V层的$row->id传到下一层子循环呢?我想了3个小时都没写出来 各位大大 教教小弟 不胜感激

在V层里通过循环能循环出 类别,但是该类别下的版块...我怎么也循环不出来

yuwen002 发表于 2009-4-24 08:49:51

都抓到二给数组中就可以了。
建议,把这个过程放在控制器中实现。

Hex 发表于 2009-4-24 10:13:20

我想问一下楼主,如果用纯 PHP,你怎么实现?

mrcml945 发表于 2009-4-24 11:24:18

纯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>";

mrcml945 发表于 2009-4-24 11:26:18

怎么在控制器里实现?
我在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>

但是控制器里要怎么实现?大大教我!

Hex 发表于 2009-4-24 12:08:33

我没看出来 CI 和 PHP 有什么区别,都是一样的循环。
循环请求数据库,现在也是循环请求数据库,然后把数据放到数组里,你之前是直接输出。
没什么区别,还是要用发散思维。

mrcml945 发表于 2009-4-24 12:10:10

Hex大大,那你写个小片断出来 给我看下啊 不然我想到100岁都想不出

gdtv 发表于 2009-4-24 13:55:55

我没看出来 CI 和 PHP 有什么区别
Hex 发表于 2009-4-24 12:08 http://codeigniter.org.cn/forums/images/common/back.gif
我太赞同你这几话,CI和PHP就是没什么区别,而其他的PHP框架和PHP区别就大了,学其他PHP框架,相当于又学了一门新语言。

Hex 发表于 2009-4-24 14:17:11

你需要构建一个具备所有数据的二维数组。
在查询数据库的时候,不要 echo,而是存到数组中,也就是在根类别的一个项目中加上子类别的内容,形如

array('根类别1' => array('此类别的信息' => 'xxxx', '子类数组' => array(.........)),
'根类别2' => array('此类别的信息' => 'xxxx', '子类数组' => array(.........)),
...
);

我认为构建上面这样的数组是编程基本功。

seven2 发表于 2009-4-25 11:39:34

数组是编程基本功,数组也很常用吧。
页: [1] 2
查看完整版本: 怎样在V层循环再循环?