列出 class=prodcut和他的下级 时,就不是从 where uid = 0 开始了
对你示例的数据就是从 where uid = 3 开始
所以你应该先获得起点的 id,然后再递归
列出 class=prodcut和他的下级 时,就不是从 where uid = 0 开始了
对你示例的数据就是从 where uid = 3 开始
所以你应该先获得起点的 id,然后再递归
论坛是交流的地方,要代码请左转威客网
function foo($uid=0, $ext='') { $sql = "select * from tbl_name where uid=$uid" . ($uid && $ext ? " and class='$ext'" : ''); $rs = mysql_query($sql); while($row = mysql_fetch_assoc($rs)) { foo($row['id'], $ext); } }
function foo($uid=0, $ext='') { $sql = "select * from tbl_name where uid=$uid" . ($uid && $ext ? " and class='$ext'" : ''); $rs = mysql_query($sql); while($row = mysql_fetch_assoc($rs)) { foo($row['id'], $ext); } }
报的什么错?
报错我解决了
但是这个还是必须是 UID 从0开始啊..
如果UID是空 那么class='$ext' 就报错啊
foo(3, "product")
不就从 产品 下面开始了吗?
要不要 product 无所谓
现在的问题是 这个 3 不是固定的啊
比如我的栏目有 首页 新闻 产品 视频
那么我在后台 发布产品的时候., 可选栏目中 只把产品栏目列出来啊/
那么 栏目中 可能有 多个 产品栏目.... 用于区分栏目类型 就靠 class字段中的值 比如product 表示全部是产品栏目
不用递归呢 可否实现
我一开始就讲了,既然你试要从某一个节点开始,就要先找到这个节点
无论这个节点存放在什么位置,都可以按其唯一的属性找到他
是啊.大哥
可是我不会从节点开始循环啊......怎么办,,,百度很多资料了.全是递归的
function foo($uid,$class=''){ if($class==''){ $sql = "select * from table where uid='".$uid."'"; }else{ $sql = "select * from table where uid='".$uid."' and class='".$class."'"; } $query = mysql_query($sql) or die(mysql_error()); while($result = mysql_fetch_assoc($query)){ echo $result['id'].' '.$result['title'].'<br>'; foo($result['id'],$result['class']); }}foo(0);
你能从根节点上递归,不就能从子节点上递归吗?
有什么区别呢?
用递归还是不用递归,这取决于你的需要。我在精华区有好几个帖子,你可以先看看
你能从根节点上递归,不就能从子节点上递归吗?
有什么区别呢?
用递归还是不用递归,这取决于你的需要。我在精华区有好几个帖子,你可以先看看