知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

php+mysql无限级分类

发布时间:2015-05-27 19:22:31作者:知识屋

无限级分类、、、但是效率不是最好的。。。大家有没有更快更好的效率的代码呢?

用递归等到类别多的时候就会影响效率了!

求分享!

class.sql

---- 表的结构 `class`--set names utf8;CREATE TABLE `class` (  `id` int(10) NOT NULL auto_increment,  `name` varchar(250) character set utf8 default NULL,  `classid` int(10) default NULL,  `sort` int(10) not null default '0',  PRIMARY KEY  (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;---- 导出表中的数据 `class`--INSERT INTO `class` (`id`, `name`, `classid`, `sort`) VALUES(1, '中国', 0, 1),(2, '广西', 1, 1),(3, '桂林', 2, 2),(4, '广东', 1, 2),(5, '北京', 1, 3),(6, '东莞', 4, 10),(7, '南宁', 2, 10),(8, '阳朔', 3, 10),(9, '柳州', 2, 10),(10, '广州', 4, 10);


index.php

无限级分类
分类列表 添加分类 select_db('test');switch($_GET['action']){ case 'add': $class_arr=array(); $sql = "select * from `class` order by sort asc, id Desc"; $query = $mysql -> query($sql); while($row = $mysql -> fetch_array($query)){ $class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']); } ?>
添加分类
分类名称:
所属分类ID:
排序:
query($sql); msg('添加成功!','http://blog.csdn.net/phpfenghuo/article/details/18733323?action='); break; case 'edit': $class_arr=array(); $sql = "select * from `class` order by sort asc, id Desc"; $query = $mysql -> query($sql); while($row = $mysql -> fetch_array($query)){ $class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']); } $sql = "select * from `class` where id=".$_GET['id']; $query = $mysql -> query($sql); $row = $mysql -> fetch_array($query); if($row){ ?>
修改分类
分类名称:
所属分类ID:
排序:
query($sql); $row = $mysql -> fetch_array($query); if($row){ if($row['id']==$_POST['classid']){ msg('修改失败,不能自己是自己的子分类!','http://blog.csdn.net/phpfenghuo/article/details/18733323?action='); }else{ $sql = "update `class` set `name`='".$_POST['name']."',`classid`=".$_POST['classid']; $sql .= ",`sort`=".$_POST['sort']." where `id`=".$_POST['id']; $mysql -> query($sql); msg('修改成功!','http://blog.csdn.net/phpfenghuo/article/details/18733323?action='); } } break; case 'del': $sql = "select * from `class` where id=".$_GET['id']; $query = $mysql -> query($sql); $row = $mysql -> fetch_array($query); if($row){ $mysql -> query("delete from `class` where id=".$_GET['id']); msg('删除成功!','http://blog.csdn.net/phpfenghuo/article/details/18733323?action='); }else{ msg('记录不存在!','http://blog.csdn.net/phpfenghuo/article/details/18733323?action='); } break; case '': $class_arr=array(); $sql = "select * from `class` order by sort asc, id Desc"; $query = $mysql -> query($sql); while($row = $mysql -> fetch_array($query)){ $class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']); } ?>
分类名称
排序
操作
/n"; echo "".$n."|----".$class_arr[$i][1]."/n"; echo "
".$class_arr[$i][3]."
/n"; echo "
修改"; echo " 删除"; echo "
/n"; echo " /n"; infinite_arr($m+1,$class_arr[$i][0]); } } }function infinite_select($m,$id,$index){ global $class_arr; $n = str_pad('',$m,'-',STR_PAD_RIGHT); $n = str_replace("-"," ",$n); for($i=0;$i".$n."|----".$class_arr[$i][1]."/n"; }else{ echo "/n"; } infinite_select($m+1,$class_arr[$i][0],$index); } } }/** *-------------------------数据库操作类-----------------------------**/class mySql_Class{ function __construct($host, $user, $pass) { @mysql_connect($host,$user,$pass) or die("数据库连接失败!"); mysql_query("SET NAMES 'utf8'"); } function select_db($db)//连接表 { return @mysql_select_db($db); } function query($sql)//执行SQL语句 { return @mysql_query($sql); } function fetch_array($fetch_array) { return @mysql_fetch_array($fetch_array, MYSQL_ASSOC); } function close() //关闭数据库 { return @mysql_close(); } function insert($table,$arr) //添加记录 { $sql = $this -> query("INSERT INTO `$table` (`".implode('`,`', array_keys($arr))."`) VALUES('".implode("','", $arr)."')"); return $sql; }}?>


(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜