>백엔드 개발 >PHP 튜토리얼 >啊小弟我被递归给郁闷死了.请大家帮小弟我一下

啊小弟我被递归给郁闷死了.请大家帮小弟我一下

WBOY
WBOY원래의
2016-06-13 12:17:29911검색

紧急求助啊.我被递归给郁闷死了.请大家帮我一下

首先.我的[栏目]表结构是这样的
id   uid   titile  class
1    0       首页  url
2   0       新闻  news
3   0       产品  url
4   3      科技产品  product
5   4      电脑   product

现在的问题的  我想做一下 无限级的下拉框

用递归的方法,可以实现  where  uid = 0  开始循环  然后 get_str($row['id']); 递归


但是问题来了.  因为我的栏目 有一个CLASS字段  表示栏目类型...url表示外部链接  news表示新闻 product表示产品栏目

一级产品首先是一个外部链接类型的..他的下级栏目 是产品类型的
我在后台发布产品的时候.选择归属栏目的时候..............应该只把 class=prodcut和他的下级全部显示出来
那么我用递归的方法  在SQL加上条件语句  where class='product'

这样的话 没办法往下递归啊......  因为这个条件 如果不递归的话 就显示  科技产品    电脑

我在网上找的归递代码 都是UID 从 0开始的..........如果我  where class='product' 加上这个条件   那么科技产品的UID是3或者是其它数字 比如56789 也可能是0

这样就没办法递归啊...直接什么也不显示了...有什么好法方吗? 不知道我说的清不清楚.
------解决思路----------------------

function foo($uid=0, $ext='') {<br />  $sql = "select * from tbl_name where uid=$uid" . ($uid && $ext ? " and class='$ext'" : '');<br />  $rs = mysql_query($sql);<br />  while($row = mysql_fetch_assoc($rs)) {<br />    foo($row['id'], $ext);<br />  } <br />}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.