1.PHP无限级分类之建库准备
建表sql如下:
CREATE TABLE IF NOT EXISTS `deepcate` (
`id` int(4) NOT NULL,
`pid` int(11) NOT NULL,
`catename` varchar(30) NOT NULL,
`cateorder` int(11) unsigned NOT NULL DEFAULT '0',
`createtime` int(10) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='分类表';
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, '英国电影', 0, 0);
<?php
$db_host = "localhost";
$db_user = "root";
$db_password = "123456";
$db_name = "test";
$link = mysqli_connect($db_host, $db_user, $db_password, $db_name) or die(mysqli_error());
mysqli_select_db($link, $db_name) or die(mysqli_error());
mysqli_query($link,"set names utf8;") or die("编码设置错误");
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
3.PHP无限级分类之列表分类样式
<?php
include ("conn.php");
function getList($pid=0, &$result = array(), $space = 0)
{
Global $link;
//print_r($link);
$space = $space + 2;
$sql = "SELECT * FROM deepcate WHERE pid = $pid";
if (!empty($link)) {
$res = mysqli_query($link, $sql);
}
// 执行SQL语句
while($row = mysqli_fetch_array($res)) {
$row['catename'] = str_repeat(' ', $space).'|--|'.$row['catename'];
$result[] = $row;
getList($row['id'], $result, $space);
}
return $result;
}
$rs = getList();
//print_r($rs);
echo "<select name='cate'>";
foreach ($rs as $kye=>$value) {
echo "<option>{$value['catename']}</option>";
}
echo "</select>";
?>
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
执行效果: