PHP 实现无限极栏目分类

首先,创建一个DB

CREATE TABLE IF NOT EXISTS `class` (
  `id` mediumint(6) NOT NULL AUTO_INCREMENT,
  `title` varchar(30) NOT NULL,
  `pid` mediumint(6) NOT NULL DEFAULT ‘0‘,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8

然后插入数据

INSERT INTO `class` VALUES (1, ‘品牌女装‘, 0);
INSERT INTO `class` VALUES (2, ‘精品男装‘, 0);
INSERT INTO `class` VALUES (3, ‘连衣裙‘, 1);
INSERT INTO `class` VALUES (4, ‘旗袍‘, 1);
INSERT INTO `class` VALUES (5, ‘燕尾服‘, 2);

数据的结构能够自己去设计

这里采用递归的方法去实现无限极栏目分类

<?php 

$con = mysql_connect("localhost","root","123456");

mysql_query("set names ‘utf8‘");
mysql_select_db("test");

function get_str($id = 0) {
    global $str;
    $sql = "select id,title from class where pid= $id";
    $result = mysql_query($sql);
    if($result && mysql_affected_rows()){
        $str .= ‘<ul>‘;
        while ($row = mysql_fetch_array($result)) {
            $str .= "<li>" . $row[‘id‘] . "--" . $row[‘title‘] . "</li>";
            get_str($row[‘id‘]);
        }
        $str .= ‘</ul>‘;
    }
    return $str;
} 

echo get_str(0); 

?>

返回一个数组

<?php 

$con = mysql_connect("localhost","root","123456");

mysql_query("set names ‘utf8‘");
mysql_select_db("test");

function get_array($id=0){
    $sql = "select id,title from class where pid= $id";
    $result = mysql_query($sql);
    $arr = array();
    if($result && mysql_affected_rows()){
        while($rows=mysql_fetch_assoc($result)){
            $rows[‘list‘] = get_array($rows[‘id‘]);
            $arr[] = $rows;
        }
        return $arr;
    }
}
$list = get_array(0);
var_dump($list);?>
时间: 2025-01-10 07:27:34

PHP 实现无限极栏目分类的相关文章

问答项目---递归重新排序无限极子分类数组

递归重新排序无限极子分类数组方法: // 递归重新排序无限极子分类数组 function recursive($array,$pid=0,$level=0){ $arr = array(); foreach ($array as $v) { if($v['pid'] == $pid){ $v['level'] = $level; $v['html'] = str_repeat('--',$level); $arr[] = $v; $arr = array_merge($arr,recursive

PHP后台无限极栏目菜单+数据库

后台无限极栏目菜单,在一些大型的CMS后台会经常看到,具体的效果可以看下面的图片,自我感觉这种效果很简洁但不失大气,看起来就很上档次的哪种,很早的时候在一个门户站看到过,找了很久都没找到这样的效果,最后硬是把人的后台给扒下来了. 这个菜单的结构由 php+mysql+js组合,比较给力的就是导航的菜单是直接保存在.sql数据库里面的,我们只要在数据库里面进行添加修改和删除就可以了,PHP文件则是由函数构成,直接读取mysql数据库里面的数据,然后再调用JS文件,形成无限级的栏目菜单,代码的结构不

php 无限极递归分类

<?php $array = array( array('id' => 1, 'pid' => 0, 'name' => '河北省'), array('id' => 2, 'pid' => 0, 'name' => '北京市'), array('id' => 3, 'pid' => 1, 'name' => '邯郸市'), array('id' => 4, 'pid' => 2, 'name' => '朝阳区'), array(

Php无限级栏目分类读取的实现代码

实现无限极栏目分类思路: 获取自增加ID(也就是父ID) 然后在到数据库获取子ID(也就是uid子id) 数据如下id:1  uid:0  我是栏目1id:2  uid:1  我是栏目2id:3  uid:1  我是栏目1的子类 显示结果:                                                 我是栏目1                                                 我是栏目1的子类我是栏目2 <?php  $query

夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是出现了,但是没有向我们平常时候见到的无限极分类一样噢,一般比如分类 多多,分类下面的 好多美女啊 是多多的下级分类,那么好多美女啊他前面是有几个空格之类的隔开, 那么我们就需要在model层里面对她进行排序的设置了: <?php namespace Admin\Model; use Think\Mo

谈一次php无限极分类的案例

作者:白狼 出处:http://www.manks.top/php_tree_deep.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.原文有图片. 平时开发中或多或少不可避免会遇到无限极分类的问题,因为效率.逻辑等问题也一直使这类问题比较尖锐.今天我们以yii2框架为基础,栏目无限极为例,对这个问题进行一个简单的处理. 首先我们有一张栏目数据表 tree 表结构如下图(原文有图) 看上去表结构很简单. 我们插入几

thinkphp无限极分类

这里首先介绍一下,什么是无限极分类? 无限极分类简单点说就是将一个类分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样 那用Thinkphp如何实现无限分类的呢? 下面看一下分类结果: 下面给出实例代码: 1.先创建Model文件并在里面定义两个方法,如下: <?php namespace app\admin\model; use think\Model; class C

PHP无限极分类

概述 ??在实际工作中,经常要用到无限极分类.如导航表等等.到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱,代码很多,那些都不靠谱,还是自己捣鼓捣鼓无限极分类了.下面介绍两种无限极分类:递归,使用引用 数据准备 //初始化原始数据(id=>编号,name=>显示名称,pid=>父级目录id,sort=>排序顺序) $data[1] = array('id'=>'1','name'=>'一级目录A','pid'=>'0','sort'=>'1

php递归无限极分类

递归无限级分类有几种形式,我这里只举例比较常用的三种: 第一种:返回有排序的数组: <?php $data = array( 1 => array( 'id' => 1, 'pid' => 0, 'user_name' => 'one', ), 2 => array( 'id' => 2, 'pid' => 1, 'user_name' => 'two', ), 3 => array( 'id' => 3, 'pid' => 1, '