继续还未解决的问题,只有10分可用分了。
--- tab ----
id title fid
1 a -1
2 b -1
3 c -1
4 d 2
5 e 4
6 f 2
7 g 5
8 h 7
9 i 7
10 df 8
.................
当传入id值 设(id=7)想显示成为
b
d
e
g
h
i
1,列出所有向上与id=7有关联的数据,
2,向下只列出一级(即fid=7);
3,显示时每下级比上级前面多出两个空格
4,当为本身一级时不带链接(g时不带链接),
5,下一级有无链接根据下级是否有下一定
在线等待,不胜感激!
问题点数:10、回复次数:5Top
1 楼yueok(悦)回复于 2003-11-03 00:01:40 得分 0
按普通递归的方法,当读出第二个值的时候再去打印第一个值。
空格数可以通过递归的层数来计算。在递归函数中加一个level参数即可Top
2 楼liubi(liubi)回复于 2003-11-03 08:48:45 得分 0
现在只要实现如何在
下级目录比上级目录前多两个空格
to yueok(悦)
能不能具体点。这段代码应该不多的!Top
3 楼liubi(liubi)回复于 2003-11-03 13:21:33 得分 0
不会吧Top
4 楼blueoxygen(有你在身旁 心更坚强)回复于 2003-11-03 13:31:48 得分 0
a哪去了?
Top
5 楼ustb(偶然)回复于 2003-11-03 14:33:02 得分 10
以前写的一个下拉菜单的递归,给你参考一下吧。
/** BEGIN function
*
* 作者:偶然
* 功能:递归出下拉菜单
* 时间:2003.7.5
* 变量:
* 返回:none
* 示例:
*
*/
function select($fid,$num,$i,$lang_type)
{
global $nav;
$num++;
$sql="select fid,cid,c_name from category where fid='$fid' and lang_type='$lang_type' and c_is_moved=0 order by cid desc";
$query=$this->query($sql);
while($array=$this->fetch_array($query))
{
$i=count($nav);
$nav[$i]["num"]=$num;
$nav[$i]["fid"]=$array['fid'];
$nav[$i]["navid"]=$array['cid'];
$nav[$i]["navname"]=$array['c_name'];
$this->select($nav[$i]["navid"],$num,$i,$lang_type);
$i++;
}
Return $nav;
}
$dir_array = $this->select(0,0,0,$lang_type);
/* 在有目录的情况下进行列表 */
$dir_num = count($dir_array);
if($dir_num!=0)
{
/* 下拉列表 */
$options = '';
foreach($dir_array as $key=>$val)
{
$dot="";
for($i=0; $i<$val['num']; $i++)
{
$dot=$dot.'--';
}
$dot=$dot."|";
$options.= "<option value=".$val['navid'].">".$dot."(".$val['navid'].")".$val['navname']."</option>";
}
$t->set_var("options",$options);
}
Top




