php原生:无限极分类

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: php原生:无限极分类

解释核心:顶级分类0下面可以有无限个子类。这就叫无限极分类。简介来说就是中国:大的范围下<<<所属>>>的小范围:海南吧。

想这张图一样,核心在于,从顶级分类pid=0开始起,顶级分类中的id是找到所有的相同的pid为子类,然后这些子类的id又会找到下一层级的pid(顶级分类pid=0除外,因为他上面已经没有id了)。好好理解这句话你就懂了.

<?php
$db_host="localhost";
$db_user="root";
$db_password="";
$db_name="book";
$link=mysql_connect($db_host,$db_user,$db_password) or die(mysql_error);
mysql_select_db($db_name,$link) or die(mysql_error());
mysql_query("set names utf8") or die("编码设置错误");
function getList($pid=0,&$result=array(),$spac=0)
{
    $spac=$spac+2;
    $sql="select * from book 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)
{
    $str="";
    $rs=getList($pid);
    $str.="<select name='cate'>";
    foreach ($rs as $key=>$val)
    {
        $selectedstr="";
        if($val['id']==$selected)
        {
            $selectedstr="selected";
        }
        $str.="<option {$selectedstr}>{$val['catename']}</option>";
    }
    return $str.="</select>";
}
echo displayCate(0,2);

数据库:

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- 主机: localhost
-- 生成日期: 2021-12-04 22:20:26
-- 服务器版本: 5.7.26
-- PHP 版本: 7.3.4
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- 数据库: `rageframe`
--
-- --------------------------------------------------------
--
-- 表的结构 `book`
--
CREATE TABLE `book` (
  `id` int(10) NOT NULL,
  `pid` int(11) NOT NULL,
  `catename` varchar(30) NOT NULL,
  `cateorder` int(11) NOT NULL,
  `createtime` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- 转存表中的数据 `book`
--
INSERT INTO `book` (`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, '花木栽', 0, 0);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql
原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql