PHP+MYSQL实现无限级分类管理
2011-07-19 11:49
696 查看
PHP+MYSQL 实现无限级分类管理
一,前言
很多知识用到时总是不太把握,往往都得要上网找资料查一番。将一些实用的资料收藏在这里,作备忘之用。本贴随时会更新。 皆为学习。简述:结合TP【Thinkphp】,功能简单,文章末尾提供附件下载.代码上....后台控制
<?php class IndexAction extends Action { public function index(){ $this->assign('title','hi.xiaohan-ixiaohan.com'); $this->display(); } /** * 函数:level * 功能:level页面初始化 * 简介: * 时间:2011年7月19日9:43:40 * 作者:by zhjp * Enter description here ... */ public function level(){ $this->assign('title','hi.xiaohan-level'); $category=M('Category'); $sql=" SELECT l.id,l.fid,l.`name`,l.`level` FROM ixh_category AS l ORDER BY l.`level` "; $levelInfo=$category->query($sql); foreach ($levelInfo as $k=>$v){ $ln=strlen($v['level'])/3; $pre=''; for($i=0; $i<$ln; $i++){ $pre.='—'; } $levelInfo[$k]['name']='<span style="color:red;">|'.$pre.'</span>'.$levelInfo[$k]['name']; } // dump($levelInfo); $this->assign('levelOption',$levelInfo); $this->display(); } /** * 函数:addLevel * 功能:添加分类 * 简介: * 时间:2011年7月19日9:42:06 * 作者:by zhjp * Enter description here ... */ public function addLevel(){ $category=M('Category'); $data['name']=$_REQUEST['name']; $data['fid']=isset($_REQUEST['fid']) ? $_REQUEST['fid'] : 0; $data['level']=$this->creatLevel($data['fid']); if($iid=$category->add($data)){ $this->ajaxReturn('成功添加记录,ID='.$iid,'success'); }else{ $this->ajaxReturn('添加记录失败','error'); } } /** * 函数:creatLevel * 功能:构造层级字符串 * 简介:构造层级字符串的目的是为了相关层级关系的排序 * 时间:2011年7月19日9:39:07 * 作者:by zhjp * Enter description here ... * @param Int $fid */ private function creatLevel($fid){ $category=M('Category'); $sqlI=" SELECT COUNT(c.id) AS cc FROM ixh_category AS c WHERE c.fid=$fid "; $resultI=$category->query($sqlI); $count=$resultI[0]['cc']; $count++; $sqlL=" SELECT c.`level` FROM ixh_category AS c WHERE c.id=$fid "; $resultL=$category->query($sqlL); if($count<10){ $relevel=$resultL[0]['level'].'00'.$count; }else if($count<100){ $relevel=$resultL[0]['level'].'0'.$count; }else if($count<1000){ $relevel=$resultL[0]['level'].$count; } return $relevel; } } ?>
前台显示
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>{$title}</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script> </head> <body> <h3>{$title}</h3> <a style="float:right;font-size:18px; color:red;" href="__URL__/index">View The Code</a> <div style="width:830px;margin:0 auto;margin-top:100px;"> <p>若所添加为一级分类,则不选上级别名</p> <h3> 类别名 <input id="name" type="text"/> 所属上级 <select id="fid"> <option value="0">请选择</option> <volist name="levelOption" id="vo"> <option value="{$vo.id}">{$vo.name}</option> </volist> </select> <input type="button" id="add" value="Add Category"> <span id="resultTips" style="display:none; color:blue;"></span> </h3> </div> <div style="width:660px;height:;margin:0 auto;margin-top:36px;color:gray;"> <p>当前层级关系如下图</p> <volist name="levelOption" id="vo"> {$vo.name}<br> </volist> </div> </body> <script type="text/javascript"> $(document).ready(function(){ $('#add').click(function(){ var name=$('#name').val(); var fid=$('#fid').val(); if(name==''){ $('#resultTips').html('类别名不能为空'); $('#resultTips').fadeIn('7000',function(){ $('#resultTips').fadeOut('3000'); }); return ; } $.post('__URL__/addLevel',{'name':name,'fid':fid},function(json){ switch(json.info){ case 'success': $('#resultTips').html(json.data); $('#resultTips').fadeIn('7000',function(){ location.reload(); }); break; case 'error': $('#resultTips').html(json.data); $('#resultTips').fadeIn('7000',function(){ $('#resultTips').fadeOut('3000'); }); break; } },'json'); }); }); </script> </html>
简单脚本【可作为外部文件引入】
$(document).ready(function(){ $('#add').click(function(){ var name=$('#name').val(); var fid=$('#fid').val(); if(name==''){ $('#resultTips').html('类别名不能为空'); $('#resultTips').fadeIn('7000',function(){ $('#resultTips').fadeOut('3000'); }); return ; } $.post('__URL__/addLevel',{'name':name,'fid':fid},function(json){ switch(json.info){ case 'success': $('#resultTips').html(json.data); $('#resultTips').fadeIn('7000',function(){ location.reload(); }); break; case 'error': $('#resultTips').html(json.data); $('#resultTips').fadeIn('7000',function(){ $('#resultTips').fadeOut('3000'); }); break; } },'json'); }); });
数据表设计
/* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50045 Source Host : localhost:3306 Source Database : db_clele Target Server Type : MYSQL Target Server Version : 50045 File Encoding : 65001 Date: 2011-07-18 23:35:59 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `clele_category` -- ---------------------------- DROP TABLE IF EXISTS `clele_category`; CREATE TABLE `clele_category` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `fid` int(11) default NULL, `level` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of clele_category -- ----------------------------
附件下载
相关文章推荐
- php+mysql实现无限级分类
- Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
- php+mysql实现无限级分类 | 树型显示分类关系
- PHP + MySQL 实现无限分类的2种方法
- php+mysql不用递归实现的无限级分类实例(非递归)
- php+mysql实现无限级分类 | 树型显示分类关系
- PHP MySQL实现无限级分类|树型显示分类关系
- Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
- 采用Jquery+Ajax+PHP+MySQL实现分类列表管理 - 下篇
- PHP + MySQL 无限分类实现的2种方法
- 采用Jquery+Ajax+PHP+MySQL实现分类列表管理 - 上篇
- php+mysql不用递归实现的无限级分类实例(非递归)
- php+mysql实现无限级分类
- Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
- php mysql实现无限级分类 | 树型显示分类关系
- php+mysql实现无限分类实例详解
- PHP + MYSQL 实现无限分类
- PHP递归写入MySQL实现无限级分类数据操作示例
- PHP-mySql实现无限分类(递归、数组)
- php+mysql实现无限分类实例详解