说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

php导航分类代码求助

编辑:说三道四文库 发布时间:2018-06-24 12:09
HTML文档下载 WORD文档下载 PDF文档下载
先前已经同问过,我没说清楚,重新求助下,谢谢~!
我想实现以下效果:

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;
  };
//这段用来查询顶级名称
那么顶级分类下的子分类怎么写?
请给个具体代码好吗?非常感谢~!
效果就是腾讯首页的导航栏目效果
循环查询到的顶级数组 根据pid查询每个顶级分类下面的子类.
没看明白,腾讯首页啥样的,UrL?
引用楼主 l133296122 的回复:
先前已经同问过,我没说清楚,重新求助下,谢谢~!
我想实现以下效果:

html代码是:
循环开始
<li>
<h1>顶级分类名1</h1>
<a>子分类名称</a>
...
<h2>顶级分类名2</h2>
<a>子分类名称</a>
...
</li>
循环结束

数据库字段:
id【顶级分类ID】pid【子分类ID】name【名称】
当id=0时来判断为顶级分类……


你说错了吧~~我看你下面写的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 楼 heyc1998 的回复:
引用楼主 l133296122 的回复:
.....
while($child = mysql_fetch(mysql_query($singsql))){
           .........
           .........//输出子菜单
      }

while($child = mysql_fetch(mysql_query($singsql))){
$top['titlse'] = $child['name'];
}
$toplist[] = $top;
调用不出子分类名呀
lairen a 
救命啊~!来人啊~!
float:left;
list-style:none;
?
关键点~ 
递归调用啊
我不会递归调用啊
我用的代码是:
$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个子分类怎么弄?能给我代码就最好了,非常感谢~!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘