无极限分类模块

无极限分类模块

1.  数据字典(举例)

类型

注释

类型

备注

id

分类表自增id

int

 

name

分类的名字

varchar

 

pid

父级id

int

 

path

分类路径

varchar

 

level

等级

int

 

 

2.创建分类表

create table `good_type`(

`id` int primary key not null auto_increment,

`name` varchar(20) not null default '',

`level` int not null default 0 comment '等级',

`pid` int comment '父级id',

`path` varchar(10) comment '分类路径'

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

3.代码实现(举例)

<?php

function get_str($id = 0) {

  global $str;

  global $link;    

//global 关键词用于访问函数内的全局变量。

  $sql = "select id,title from class where pid= $id";

  $result = mysqli_query($link,$sql);

//查询pid的子类的分类

  if($result){

//如果有子类

    $str .= '<ul>';

while ($row = mysqli_fetch_array($result)) {

//循环记录集

      $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>";

//构建字符串

      get_str($row['id']);

//调用get_str(),将记录集中的id参数传入函数中,继续查询下级

    }

    $str .= '</ul>';

  }

  return $str;

}

echo get_str(0);

?>

实现 思路:

定义一个自定义函数get_str ,设置父类pid = 0, 使用SQL语句查询出它的子类,把查询出来的子类放置到$result使用while循环出子类,通过构建字符串做成输出的样式,调用自定义函数get_str,将子类的id传入自定义函数中,然后继续查询下一级。

补充:

PHP str_repeat() 函数的运用

实例

把字符串 "Shanghai " 重复 5 次:

<?php

echo str_repeat("Shanghai",5);

?>

在无极限分类模块可以使用这个函数实现“——”的重复,只需根据表里的等级level字段就能实现

比如原来代码:

//循环记录集

      $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>";

优化后的代码:

//循环记录集

      $str .= "<li>" . $row['id'] . str_repeat(" -- ", $row[ ' level ']). $row['title'] . "</li>";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值