$f=array();
$list=array();
$db->query("select * from test order by parent_id");
while($rs=$db->fetch()){
$f[$rs['id']]['name']=$rs['name'];
if(!$rs['parent_id']){
$list[]=&$f[$rs['id']];
}else{
$f[$rs['parent_id']]['sub'][$rs['id']]=&$f[$rs['id']];
}
}
function show($list,$tab='')
{
if(!is_array($list)){
echo $list;
return;
}
foreach($list as $k=>$v){
echo $tab."⊥".$v['name']."<br>";
show($v['sub'],$tab." ");
}
}
show($list);
$list=array();
$db->query("select * from test order by parent_id");
while($rs=$db->fetch()){
$f[$rs['id']]['name']=$rs['name'];
if(!$rs['parent_id']){
$list[]=&$f[$rs['id']];
}else{
$f[$rs['parent_id']]['sub'][$rs['id']]=&$f[$rs['id']];
}
}
function show($list,$tab='')
{
if(!is_array($list)){
echo $list;
return;
}
foreach($list as $k=>$v){
echo $tab."⊥".$v['name']."<br>";
show($v['sub'],$tab." ");
}
}
show($list);
解决方案 »
- php数据库可以连接成功,但是语句总是执行不了,急救!谢谢!
- php中如何获取客户端的MAC地址
- 请问如何将文件写在客户端?
- 探索缓存的基本疑问:下面这个ob函数为何无法写入4.txt?
- error_reporting(7); 这句代码是什么意思?
- 三个学习mysql的初级问题?
- 我要做一个新闻系统,涉及到5,6的新闻类别,同时,管理员可以授权给每个用户不同的新闻类别管理功能,可以,同时有多个类别的管理功能,
- 一个关于PHP中Form的传递问题?!
- php 如何获取到当前访问的域名
- .htaccess中/v/U90418Y3FCJUD389\?toPage=32396跳转成 /v/U90418Y3FCJUD389/
- left join 会比 WHERE 句型连接起来的快么?
- PHP页面的乱码问题,我觉得是apache的问题.
1 0 新闻
2 1 国内
3 1 国外
4 1 大陆
5 0 笑话
6 5 子栏目
7 5 子栏目
8 7 子栏目的子栏目
9 7 子栏目的子栏目
10 7 子栏目的子栏目先说下表的设计,其中表的父id为0的表示为最顶级的分类(或者节点),id为自动.
<?php
$list=array();
$sub=array();/*子类显示的函数
$array = 显示数组
$index = 索引
$sub_char = 子分类的装饰字符 ⊥
$split_char = 分隔符 这里是tab(8个空格)
*/
function show_list($array, $index, $sub_char, $split_char = "\t") {
static $s = 1;
if(is_array($array[$index])) {
foreach($array[$index] as $class) {
echo str_repeat($split_char, $s).$sub_char.$class['classname']."\n";
if(is_array($array[$class['id']])) {
$s++;
show_list($array, $class['id'], $sub_char, $split_char);
}
}
}
if($s > 1) $s--;
}mysql_connect('localhost', 'test', '') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
mysql_query("set names 'gbk'");
$result = mysql_query("select * from test order by id");
while($rs = mysql_fetch_array($result, MYSQL_ASSOC)) {
if($rs['parentid'] == 0) {
$list[] = $rs; //保存顶级分类
} else {
$sub[$rs['parentid']][] = $rs; //子分类
}
}echo '<pre>';
if(is_array($list)) {
foreach($list as $class) {
echo '-'.$class['classname']."\n";
show_list($sub, $class['id'], '⊥');
}
}
echo '</pre>'