为了账号安全,请及时绑定邮箱和手机立即绑定

PHP无限级分类技术

难度初级
时长 1小时14分
学习人数
综合评分9.30
71人评价 查看评价
9.7 内容实用
9.2 简洁易懂
9.0 逻辑清晰
  • //connect. 比较新版本的PHP已经不建议用mysql_函数族了.推荐用PDO. $dsn = 'mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $password = ''; $pdo = new PDO($dsn, $user, $password); $pdo->exec('set names utf8'); $sql = "select * from `deepcate`"; $rs = $pdo->query($sql); $cates = $rs->fetchAll();
    查看全部
  • <?php header("content-type:text/html;charset=utf-8"); @mysql_connect("localhost","root",""); mysql_select_db("demo"); mysql_query("set names utf8"); $sql = " CREATE TABLE `deepcate` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `pid` INT UNSIGNED NOT NULL, `catename` VARCHAR(30) NOT NULL, `cateorder` INT UNSIGNED NOT NULL DEFAULT '0', `createtime` INT(10) NOT NULL )"; mysql_query($sql); $sql1=" INSERT INTO `deepcate`(`id`,`pid`,`catename`,`cateorder`,`createtime`) VALUES (1,0,'新闻',0,0), (2,0,'图片',0,0), (3,1,'国内新闻',0,0), (4,1,'国际新闻',0,0), (5,3,'北京新闻',0,0), (6,4,'美国新闻',0,0), (7,2,'美女图片',0,0), (8,2,'风景图片',0,0), (9,7,'日韩明星',0,0), (10,9,'日本AV',0,0); "; mysql_query($sql1);
    查看全部
  • 无限级分类的两种实现方法: 一、递归方法实现 二、全路径方法实现 两者的表结构设计都是在栏目表中增加一个字段例如名字为fatherid 递归方法实现的表的fatherid用来存放父级栏目的id,查询的时候根据递归实现查询所有子栏目和所在栏目 全路径方法的表的fatherid字段则是存放一个字符串,以特殊的结构来表示栏目的深度,再用字符串的操作函数实现查询所有子栏目和所在栏目(where id in) 用到的陌生函数 mysql:concat(字段名,'符号',字段名1) as a 字段名和字段名1用指定符号连接 作为a php: krsort($arr); — 对数组按照键名逆向排序 数据表添加一个字段居然可以这么用,哈哈,精彩!
    查看全部
  • 递归就是程序调用自身的编程技巧
    查看全部
  • 什么是递归?程序调用自身的编程技巧称为递归
    查看全部
  • 无限极分类常见的几种方式
    查看全部
  • 数据表设计
    查看全部
  • 递归无限分类原理。。。
    查看全部
  • 无限级分类,递归,全路径
    查看全部
  • select id,catename,path,concat(path,',',id) as fullpath from deepcate where 1 order by fullpath asc;
    查看全部
  • function getCatePath($pid, &$result = array()) { $sql = "SELECT * FROM deepcate WHERE id=$pid"; $rs = mysql_query($sql); $row = mysql_fetch_assoc($rs); if ($row) { $result[] = $row; getCatePath($row['pid'], $result); } krsort($result); //krsort对数组按键名逆向 return $result; } function displayCatePath($cid,$url='cate.php?cid=') { $res = getCatePath($cid); $str = ''; foreach ($res as $key => $val) { $str.= "<a href={$url}{$val['id']}>{$val['catename']}</a>>"; } return $str; } echo displayCatePath(10);
    查看全部
  • function getList($pid = 0, &$result = array(), $spac = 0) { $spac = $spac + 2; $sql = "SELECT * FROM deepcate WHERE pid=$pid"; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)) { $row['catename'] = str_repeat('&nbsp;', $spac) . '|--' . $row['catename']; $result[] = $row; getList($row['id'], $result, $spac); } return $result; } function displayCate($pid = 0, $selected = 1) { $rs = getList($pid); $str = '<select name="cate">'; foreach ($rs as $key => $val) { $selectedstr = ''; if ($val['id'] == $selected) { $sellectedstr = 'selected'; } $str .= "<option {$selectedstr}>{$val['catename']}</option>"; } return $str .= '</select>'; } echo displaycate(0, 1);
    查看全部
  • 这里的$row会死循环吧?
    查看全部
  • <?php include_once "db_inc.php"; include_once "header.php"; function myInfinite($pid=0,&$result=array(),$nb_times=0){ //将数据全部保存到$result数组,所以用引用传值,来达到直接改变数据目的 $nb_times += 4; $sql = "select * from myclassification where pid={$pid}"; $res = mysql_query($sql); while ($row = mysql_fetch_assoc($res)) { # code... $row['classi_name'] = str_repeat("&nbsp;",$nb_times)."|---".$row['classi_name']; $result[] = $row; myInfinite($row['id'],$result,$nb_times); } return $result; } function displayClassi($id,$str=''){ //在网页中输出的是字符串,因此我们用空字符串来保存要显示的下拉菜单 $dis_res = myInfinite(); $str .= "<select>"; //调用分类函数,得到二维数组 foreach ($dis_res as $key => $value) { //遍历 # code... if($id == $value['id']){ $str .= "<option selected=selected>".$value['classi_name']."</option>"; }else{ $str .= "<option>".$value['classi_name']."</option>"; } } $str .= "</select>"; return $str; } echo displayClassi(15);
    查看全部
  • 无限分类实现方法
    查看全部

举报

0/150
提交
取消
课程须知
如果你刚好具备PHP和MySQL数据库基础,那么恭喜你,这门课程就是为你准备哒。
老师告诉你能学到什么?
1.无限分类的使用场景 2.递归的原理及常用返回值方式 3.如何用递归的方式实现无限分类 4.无限分类在Web前端中的表现形式 5.全路径无限分类的代码实现

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!