我已经开发我自己的论坛大约一周了,我几乎完成了所有的代码,然而,我被一个问题卡住了,我还没有弄清楚。
嗯,简单地说,我有子论坛,可以在任何数量的其他子论坛。
我如何用PHP在现场动态地创建到这些子论坛的路径。
在创建路径之后,我将在href和其他东西中使用它。
我猜我会以某种方式需要遍历数据库的ID栏和另一个栏目,将链接一个子论坛到另一个子论坛。
让我们假设我的数据库表如下所示:
ID | Name | Link |
---+-------------+-------
1 | Forum-One | Top |
2 | Forum-Two | 1 |
3 | Forum-Three | 2 |
4 | Forum-Four | 2 |
5 | Forum-Five | 3 |
6 | Forum-Six | 3 |我该如何着手做这件事--或者有没有其他必须要做的事情?
我希望我讲得足够清楚,让每个人都能理解。
编辑:
include("inc/config.php");
function generateBreadcrumb($startingID){
$result = mysql_query("SELECT * FROM temp_table WHERE ID='$startingID'");
while($row = mysql_fetch_array($result))
{
$db_id=$row['ID'];
$db_name=$row['Name'];
}
if($db_id!='Top'){
return generateBreadCrumb($db_id);
} else {
return $db_name;
}
}
$startID='6';
echo generateBreadcrumb($startID);发布于 2011-01-22 11:58:27
首先,您需要一个终止条件。因此,将顶层Forumlink设置为null、' top‘或其他值。然后,这只是一个简单的问题,使用递归函数将您的面包屑放在一起。
因此,假设您想要显示指向Forum-One:Forum-Three:Forum-Six的面包屑,也就是更为人熟知的Forum-Six。
示例代码:
<?php
$yourForumId = 6; // replace this dynamically with your forum;
$breadcrumb = generateBreadcrumb($yourForum);
function generateBreadcrumb($startingForumId){
$sql= "SELECT Name ,link FROM Forums WHERE ID = ".$startingForumId;
//run your $sql however you do to get results
//assuming you get associative arrays back
if($res['link'] != 'top'){
return generateBreadCrumb($res['link']).":".$res['Name'];
} else {
return $res['Name'];
}
}
echo $breadcrumb;
?>它是递归,如果你是新手,它可能看起来很复杂,但我希望它能有所帮助!
编辑:这是包含所需编辑的代码...
include("inc/config.php");
function generateBreadcrumb($startingID){
$result = mysql_query("SELECT * FROM temp_table WHERE ID='$startingID'");
$row = mysql_fetch_array($result);
$db_id=$row['link'];
$db_name=$row['Name'];
if($db_id!='Top'){
return generateBreadCrumb($db_id).":".$db_name;
} else {
return $db_name;
}
}
$startID='6';
echo generateBreadcrumb($startID);https://stackoverflow.com/questions/4766010
复制相似问题