关于无限分类的调用问题!
来源:互联网 发布:淘宝客进入等级 编辑:程序博客网 时间:2024/04/30 07:53
数据表test是这么建的,一个id ,pid,name。
方法一:调用此ID下所有的子类。
function tree($pid){ $sql= "SELECT id FROM test WHERE pid =".$pid; $res = mysql_query($sql); $arr = array(); if($res && mysql_affected_rows()){//如果有子类 while($rows=mysql_fetch_assoc($res)){ //循环记录集 $rows['list'] = tree($rows['id']); //调用函数,传入参数,继续查询下级 $arr[] = $rows; //组合数组 } return $arr; } }此方法返回的是一个多维数组,有时候会需要转化成字符串。也提供了方法:
//cyclefunction cycle($arr){static $idstr='';foreach ($arr as $v){$id .= $v['id'];if( is_array($v['list']) ){cycle($arr);}}return $idstr;}向上取name
//取出栏目最顶层 function listtree($pid){ $fenge =",";static $name; $sql= "SELECT name,pid FROM test WHERE id =".$pid; $res = mysql_query($sql); if(mysql_num_rows($res)){ list($name,$pid) = mysql_fetch_row($res); if($pid!=0){ listtree($pid); } } return $name;}向上取出所有name
// function listtrees($pid){ $fenge =",";static $names; $sql= "SELECT name,pid FROM test WHERE id =".$pid; $res = mysql_query($sql); if(mysql_num_rows($res)){ list($name,$pid) = mysql_fetch_row($res); $names .= $name.$feng; if($pid!=0){ listtree($pid); } } return $name;}
遍历所有,下拉框的方式列出来
//根目录选择框样式function menutree($selectid='',$pid = 0,$first=1,$fenge=''){ static $str=''; if($first == 1){$str .= "<select name='type'>";$str .= '<option value="">--请选择--</option>';}$sql= "SELECT id,name,pid FROM test WHERE pid =".$pid;$res = mysql_query($sql);if(mysql_num_rows($res)){$fenge .=' |--';while(list($id,$name,$pid)= mysql_fetch_row($res)){ if(!empty($selectid)){if($selectid == $id){$selected = 'selected';}else{$selected = '';}}$str .= "<option value = {$id} {$selected} >{$fenge}{$name}</option>";menutree($selectid,$id,0,$fenge);}}if($first == 1){$str .= '</select>';} return $str;}
0 0
- 关于无限分类的调用问题!
- 关于实现无限级别分类的问题?
- 无限分类的程序
- ThinkPHP的无限分类
- 关于无限级分类的sql语句操作
- 一个关于无限评论的问题
- 用asp实现无限级分类的问题
- 关于CScrollView中SetScrollSizes导致的OnDraw的无限调用
- 简单的无限分类思想
- 无限级别分类的类
- 无限级分类的实现
- 无限级分类的实现
- 无限分类的程序,php
- php 无限分类的实现
- TreeView的无限级分类
- 无限级分类的删除
- 无限分类的CURD实现
- 无限级分类的实现
- scrollview
- UVA10012
- 九种常用设计模式的简单应用
- ios-----提示框第三方库之MBProgressHUD
- Extjs EditorGridPanel中ComboBox列的显示问题
- 关于无限分类的调用问题!
- 正则表达式教程一
- SQL Server: Invalid Column Name
- iOS-----添加三方库的问题
- windows 多线程之原子性
- Spring DM中整合CXF-DOSGi
- objective-C中的description方法
- send mail
- SQLServer通用的CRUD存储过程