先前已经同问过,我没说清楚,重新求助下,谢谢~!
我想实现以下效果:html代码是:
循环开始
<li>
<h1>顶级分类名1</h1>
<a>子分类名称</a>
...
<h2>顶级分类名2</h2>
<a>子分类名称</a>
...
</li>
循环结束数据库字段:
id【顶级分类ID】pid【子分类ID】name【名称】
当id=0时来判断为顶级分类 当pid=id时为id的子分类
PHP代码:  $toplist = array();  
  $query = mysql_query("SELECT name,id,pid  FROM nav WHERE pid = 0 ORDER BY id ASC LIMIT 0 , 8");
  while ($top = mysql_fetch($query)) {
  $topname = $top['name'];
if ($top = mysql_fetch($query)) {
  $top['subject'] = $topname;
  $top['subject2'] = $top['name'];
}
  $toplist[] = $top;
  };
//这段用来查询顶级名称
那么顶级分类下的子分类怎么写?
请给个具体代码好吗?非常感谢~!

解决方案 »

  1. 循环查询到的顶级数组 根据pid查询每个顶级分类下面的子类.
      

  2. 没看明白,腾讯首页啥样的,UrL?
      


  3. 你说错了吧~~我看你下面写的sql,应该是当pid为0时来判断顶级分类!
    至于你要的sql应该写成
      $query = mysql_query("SELECT name,id,pid FROM nav WHERE pid = 0 ORDER BY id ASC LIMIT 0 , 8");
      while ($top = mysql_fetch($query)) {
          ................. 
          .................//原先的代码
          $singsql = "select * from nav where id=$top['id'] and pid<>0";
          while($child = mysql_fetch(mysql_query($singsql))){
               .........
               .........//输出子菜单
          }
      }
      

  4. while($child = mysql_fetch(mysql_query($singsql))){
    $top['titlse'] = $child['name'];
    }
    $toplist[] = $top;
    调用不出子分类名呀
      

  5. float:left;
    list-style:none;?
    关键点~ 
      

  6. 我用的代码是:
    $topnavlist = array();
    $query = $db->query("SELECT * FROM nav WHERE parentid =0 ORDER BY order ASC LIMIT 0 , 8");
    while($topnav = $db->fetch($query))
    {    
    $pid  =$topnav['id'];
    $SubQuery = $db->query("SELECT * FROM nav where parentid=".$topnav['id']." ORDER BY order ASC LIMIT 0 , 3");
            while($sqs = $db->fetch($SubQuery))
            {
              $topnav['b']=$topnav['name'];
      $topnav['a']=$sqs['name'];
            }
            $topnavlist[] = $topnav;
          }现在调用出来的效果是一个大分类下只显示了一个子分类。
    请问要让一个大分类下显示3个子分类怎么弄?能给我代码就最好了,非常感谢~!