很多站长朋友们都不太清楚php树状分类展示,今天小编就来给大家整理php树状分类展示,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php如何分页显示树状结构数据? 2、 PHP查询2表显示树状 3、 用php调数据库做树状显示 4、 php树状显示多个目录中的一个目录下的所有栏目 5、 php怎么将信息已树状形式显示出来 php如何分页显示树状结构数据?分页了还怎么显示树状?能显示 但是很难看 ,看不出效果了,我写后台菜单管理从来不分页,phpcmsV9 也没有分页 。我推荐使用 tree.class.php phpcmsV9 的一个扩展类文件,可以看看怎么使用。如图 我就是直接显示的:
PHP查询2表显示树状你这个只有两层,可以用双重循环来做,逻辑简单点,但是数据库查询次数多;也可以用一重循环来做,逻辑复杂点,但是数据库查询简单。
简单方法:
$sql="select pid,name from A";
$res=mysql_query($sql)
while (list($pid,$pname)=mysql_fetch_row($res))
{
echo "<UL>$pname";
$sql2="select id,name from B where pid=$pid";
$res2=mysql_query($sql2);
while (list($id,$name)=mysql_fetch_row($res2))
{
echo "<LI>$name</LI>";
}
mysql_free_result($res2);
echo "</UL>";
}
mysql_free_result($res);
用php调数据库做树状显示数据库设计的时候,通常的做法是用父ID来解决树状结构,也有二叉树等等
id pid category_name
然后,用递归就能实现,也有引用数组的方式
<?php
/**
* 此方法由@Tonton 提供
*
* @date 2012-12-12
*/
function genTree5($items) {
foreach ($items as $item)
$items[$item['pid']]['son'][$item['id']] = $items[$item['id']];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}
/**
* 将数据格式化成树形结构
* @author Xuefen.Tong
* @param array $items
* @return array
*/
function genTree9($items) {
$tree = array(); //格式化好的树
foreach ($items as $item)
if (isset($items[$item['pid']]))
$items[$item['pid']]['son'][] = $items[$item['id']];
else
$tree[] = $items[$item['id']];
return $tree;
}
$items = array(
1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),
2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'),
3 => array('id' => 3, 'pid' => 1, 'name' => '南昌市'),
4 => array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'),
5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
6 => array('id' => 6, 'pid' => 4, 'name' => '香坊区'),
7 => array('id' => 7, 'pid' => 4, 'name' => '南岗区'),
8 => array('id' => 8, 'pid' => 6, 'name' => '和兴路'),
9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'),
10 => array('id' => 10, 'pid' => 8, 'name' => '东北林业大学'),
11 => array('id' => 11, 'pid' => 9, 'name' => '哈尔滨工业大学'),
12 => array('id' => 12, 'pid' => 8, 'name' => '哈尔滨师范大学'),
13 => array('id' => 13, 'pid' => 1, 'name' => '赣州市'),
14 => array('id' => 14, 'pid' => 13, 'name' => '赣县'),
15 => array('id' => 15, 'pid' => 13, 'name' => '于都县'),
16 => array('id' => 16, 'pid' => 14, 'name' => '茅店镇'),
17 => array('id' => 17, 'pid' => 14, 'name' => '大田乡'),
18 => array('id' => 18, 'pid' => 16, 'name' => '义源村'),
19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),
);
echo "<pre>";
print_r(genTree5($items));
print_r(genTree9($items));
?>
php树状显示多个目录中的一个目录下的所有栏目可以加一个父路径字段,查询该字段节点的目录
数据库加了一个字段后的代码修改如下,只有一点改动:
<?
include("conn.php");
function tree1($a=0)//从parent_id=0开始,即显示整个表中的数据,意思就是下面的sql语句从父目录parent_id=0开始查找,就是查找整个表
{
$sql = "select list_name,id,parent_id,deep,path from web_list where parent_id = $a order by list_name asc";//数据库表中的四个字段,即:list_name,id,parent_id,deep;list_name为目录的名称,parent_id为父目录的id,deep为该目录的深度(即1级目录、2级目录等)
$rs = mysql_query($sql);
while($ra = mysql_fetch_row($rs))
{
$list_name=$ra[0];//sql语句中的第1个字段,即 list_name 的值
$name_id=$ra[1];//sql语句中的第2个字段,即 id 的值
$par_id=$ra[2];
$name_deep=$ra[3];
$path=$ra[4];
for($i=2;$i<101;$i++)//用一个for循环显示树状缩进
{
if($name_deep==$i)
{
$sj1='┆';
$sj='├ ';
for($j=1;$j<$i;$j++)
{
$sj=$sj1.$sj;
}
}
}
$b=explode('-',$path);
if($b[1]==5)
{
echo $sj.$list_name.' '."<font color='#0000FF'>".$path."</font><br>";//显示数据
}
tree1($ra[1]);
}
}
tree1();
?>
字段格式如图:
php怎么将信息已树状形式显示出来你可以参考一下thinkphp的手册,如果你使用了smarty模板引擎的话就参考smarty的开发手册。因为这个东西需要把变量的值传递给模板上的表单项在表单中显示出来,一两句也说不清楚,如果你的代码像thinkphp一样有模板引擎那就好办多了,调用$smarty->assgin('name','value');
模板上{$name},大概意思是这样的,具体的需要看你那里是啥情况!!!
关于php树状分类展示的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php树状分类展示 php树形列表的详细内容...