23
回答
这个问题很实用,关于位置问题

具体情况如下:

1.数据库表格式如图所示

2.要生成如下格式:

您的位置:首页>新闻中心>公司新闻>今日浙江西湖市降落红雨>正文

其中公司新闻id=29,pid=3,今日浙江西湖...的记录id号为30,pid为29

最好也是用数组或调一次数据表就可以搞掂,谢谢!

PHP
举报
彭哥
发帖于7年前 23回/1K+阅
共有23个答案 最后回答: 5年前

传入的id 很可能就是你正文的 id, 这个应该存放在你 文章数据表里的内容。

pid , 就是你分类需要的内容。 pid 由于导航里面形成了层级, 所以会传递pid 给你,

如果不传递pid ,应该从文章默认分类里获取这个分类id. 分类信息 可以转化数组形式。

<?php
$array = array('1'=>array('pid'=>'0','v'=>'一级分类1'),
'2'=>array('pid'=>'0','v'=>'一级分类2'),
'3'=>array('pid'=>'1','v'=>'二级分类1'),
'4'=>array('pid'=>'1','v'=>'二级分类2'),
'5'=>array('pid'=>'3','v'=>'三级分类1'),
'6'=>array('pid'=>'3','v'=>'三级分类2'),
'7'=>array('pid'=>'5','v'=>'四级分类'),
'8'=>array('pid'=>'6','v'=>'四级分类')
);



function foo1($id, $array) {
	if(!$id) return '首页';
	$str = foo1($array[$id]['pid'],$array).'-->'.$array[$id]['v'];
	return $str;
}

function foo2($id,$array) {
	if(!$id) return '首页';
	$str = $array[$id]['v'].'-->'.foo2($array[$id]['pid'],$array);
	return $str;
}

echo foo1(8,$array);
echo '<br>';
echo foo2(8,$array);

比较一下。 多思考。给的只是思路。 这种问题都重复好多次了。 不能再这么重复下去了。

 

--- 共有 7 条评论 ---
彭哥回复 @木人mr : 还是请帮我看看为什么我从数据库调出的数据就不能生成你说的那种格式呢?怎么回事呢?谢谢! 6年前 回复
彭哥回复 @木人mr : 惨了,在图中显示的数据表,我生成不了array这样形式的数组怎么办怎么办 6年前 回复
彭哥回复 @木人mr : 大侠你太帅了,帅得没话说了,要是这个能加上链接就更帅了!!! 6年前 回复
泡不烂的凉粉我给你的就是我的方法。 为什么无输出内容。 这个我真的不知道。 帮不了你。 看来你需要另寻他发了。 我没藏着掖着。 我只说点我懂了。 不显示的问题我真的不懂。 7年前 回复
彭哥回复 @木人mr : 呵呵,你就是高手嘛,你自已的程序应该最了解的啊!别掖着藏着,大方点摆出来啥!!! 7年前 回复

没有明白你的意思,你是做无限级分类?做成树型菜单?

--- 共有 1 条评论 ---
彭哥我都用红色字标明了,怎么可能不明白,就是要一个您的位置的导航条,只不过是动态生成的 7年前 回复

为了提高性能,在表的数据量不大的情况下,可以将表全部读入内存中预先生成各节点的完整路径,用数组存下来备用。如果数据量比较大,可以加一个字段保存完整路径,在插入、更新纪录的时候生成完整路径预存下来。所谓空间换时间。

--- 共有 11 条评论 ---
彭哥回复 @MUTEX : 没时间啊,三二天全弄清数组,太复杂了,还是从项目熟悉比较快! 7年前 回复
MUTEX回复 @彭哥 : 复习下数据结构有关树的知识吧 7年前 回复
彭哥回复 @MUTEX : 就是把数据库表的内容保存在一个变量中,但问题我通过参数ID,PID怎么生成具体的格式的内容,如:首页>新闻中心>公司新闻>某某省连续下暴雨三天 7年前 回复
MUTEX回复 @彭哥 : 所谓内存就是你保存全部分类完整路径的的数组。 7年前 回复
彭哥回复 @MUTEX : 大侠,我的PHP内功修为不高,未达到运用到内存处理的层次,我只想要最简单最实用的办法!若你能把怎么运用内存来存取数据 来解决这个问题的方法教给我,在下感谢不以! 7年前 回复
这个好做吧,导航为保证效率启动加载到内存,存储结构为树。提供一个方法,该方法传入参数ID,返回由该ID指定节点到根节点的逆向列表。 至于不在该表中的某新闻标题,可以在获取导航链时加入到链尾。
--- 共有 4 条评论 ---
彭哥回复 @木人mr : 恩,看到你给出解决方案,喜,但未给出具体案例,马上心又凉了 7年前 回复
泡不烂的凉粉你的回复充满喜感。 有点冷。呵呵。 7年前 回复
xoHome回复 @彭哥 : 真抱歉,我不是搞PHP的,对PHP也不太了解,貌似memchche应该支持这个缓存结构,具体案例没有,真是爱莫能助了。 7年前 回复
彭哥发现这个最靠谱了,大侠有没有具体案例,谢谢!最好精简版! 7年前 回复
有点难度啊,关键是怎么样使具体对应起来,并不是直接生成单种,有时候要生成首页》新闻中心。有时候就只生成首页》新闻中心》公司新闻。有时候却生成为首页》新闻中心》公司新闻》某条新闻的标题》正文,正因为有这几种方式,就显得比较复杂,我传递的参数就只有id和pid
顶部