预期目标:
序号  大类别  小类别  
1     A       A1 A2 A3
2     B       B1 B2
3     C       C1 C2 C3
4     D       D1表结构:
id  cate_name  pid
1   A          0
2   B          0
3   C          0
4   D          0
5   A1         1
6   A2         1
7   A3         1
8   B1         2
...问题:
如何写?

解决方案 »

  1.   

    $cate_parents = $conn->query("select * from category where pid=0");
    $cates = $conn->query("select * from category");for($i=0;$cate_parent=$conn->mysql_fetch_array($cate_parents); $i++){
     echo "<b>".$cate_parent['cate_name']."</b><br/>";
      for($j=0;$cate=$conn->mysql_fetch_array($cates); $j++){   //子循环 不能再次取值
       if($cate['pid']==$cate_parent['id'])
        echo $cate['cate_name']."<br/>";
    }我是这么写的,但是子循环 自能遍历1次如何解决?
      

  2.   

    你想要什么结果?
    第二个mysql_fetch_array用了第一个句柄吧~~
      

  3.   

    while( $row = $conn->mysql_fetch_array($cate_parents) )
    {
        $res[] = $row; 
    }$str = '';
    foreach($res as $row1){
       if( $row['pid'] == 0 )
          $str.= $row1['id'].' '.$row1['cate_name'];
       foreach($res as $row2){
          if( $row1['id'] == $row2['pid'] )
              $str.= $row['cate_name'].' ';
       }
       $str.= '<br />';
    }
    echo $str;没有测试过, 我写模板时是用这种思路, 方法是可行的
      

  4.   


    那个$cate_parents = $conn->query("select * from category");