- sql文件
/*
SQLyog Ultimate v11.27 (32 bit)
MySQL - 5.5.53 : Database - depart
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`depart` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `depart`;
/*Table structure for table `deepcate` */
DROP TABLE IF EXISTS `deepcate`;
CREATE TABLE `deepcate` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`pid` int(10) DEFAULT NULL,
`catename` char(50) DEFAULT NULL,
`level` int(10) DEFAULT NULL,
`createtime` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
/*Data for the table `deepcate` */
insert into `deepcate`(`id`,`pid`,`catename`,`level`,`createtime`) values (1,0,'新闻',NULL,NULL),(2,0,'图片',NULL,NULL),(3,1,'国际新闻',NULL,NULL),(4,1,'国内新闻',NULL,NULL),(5,3,'美国新闻',NULL,NULL),(6,3,'日本新闻',NULL,NULL),(7,4,'广东新闻',NULL,NULL),(8,4,'北京新闻',NULL,NULL),(9,2,'美女图片',NULL,NULL),(10,2,'动漫图片',NULL,NULL),(11,9,'明星A',NULL,NULL),(12,9,'明星B',NULL,NULL),(13,10,'海贼王',NULL,NULL),(14,10,'柯南',NULL,NULL);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
- db.inc.php
<?php
header("Content-type: text/html; charset=utf-8");
$db_host = 'localhost';
$db_user = 'root';
$db_password = 'root';
$db_name = 'depart';
$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(mysql_error());
- index.php
<?php
include 'db.inc.php';
/**
* @Author SEVENORTH
* @DateTime 2018-04-08
*/
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(' ',$spac).'|--'.$row['catename'];
$result[] = $row;
getList($row['id'],$result,$spac);
}
return $result;
}
function displayCate($pid = 0,$selected = 1){
$rs = getList($pid);
$str="";
$str.= "<select name = 'cate'>";
foreach ($rs as $key => $value) {
$selectedstr = "";
if($value['id'] == $selected){
$selectedstr = "selected";
}
$str.= "<option {$selectedstr}>{$value['catename']}</option>";
}
return $str.= "</select>";
}
echo displayCate();
全路径无限极分类模式
<?php
include 'db.inc.php';
/**
* @Author SEVENORTH
* @DateTime 2018-04-08
*/
function likecate($path=''){
$sql = "SELECT id,catename,path,concat(path,'|',id) as fullpath FROM fullcate order by fullpath asc ";
$res = mysql_query($sql);
$result = array();
while ($row = mysql_fetch_assoc($res)) {
$deep = count(explode('|', trim($row['fullpath'],'|')));
$row['catename'] = str_repeat(' ', $deep*4).'|--'.$row['catename'];
$result[] = $row;
}
return $result;
}
function linkcate(){
$res = likecate();
$str='';
$str.='<select name = cate>';
foreach ($res as $key => $value) {
$str.="<option>{$value['catename']}</option>";
}
$str.='</select>';
return $str;
}
echo linkcate();
echo "<br/>";
function getPathCate($cateid){
$sql = "SELECT *,CONCAT(REPLACE(path,'|',','),',',id) AS fullpath FROM fullcate WHERE id = $cateid ";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
$ids = $row['fullpath'];
unset($sql);
$sql = "SELECT * FROM fullcate WHERE id in ($ids) order by id asc ";
unset($res);
$res = mysql_query($sql);
$result = array();
while ($row = mysql_fetch_assoc($res)) {
$result[] = $row;
}
return $result;
}
function linkpath($cid,$url='cate.php?cid = '){
$res = getPathCate($cid);
$str = '';
foreach ($res as $key => $value) {
$str.= "<a href = '{$url}{$value['id']}' target='_blank'>{$value['catename']}</a>>";
}
return $str;
}
echo linkpath(8,'page.php?id=');
- 参考 php无限极分类技术