1 回答
TA贡献1839条经验 获得超15个赞
我会为此使用递归函数。
function generate_sitemap($site_id, $parent_id=0) {
global $dbcon;
$return = '';
$query = mysqli_query($dbcon, "SELECT * FROM tbl_website_posts WHERE post_website='$site_id' AND post_parent='$parent_id'");
// side note: once you get this working it will be worth the effort to turn
// this query into a prepared statement. Using variables in your query like
// this puts you at risk of a SQL injection attack.
if (mysql_num_rows($query) > 0) {
$return = '<ul>';
$icon = array('page' => 'fa-file-word', 'post' => 'fa-newspaper', 'event' => 'fa-calendar-star', 'calander' => 'fa-calendar-alt', 'training' => 'fa-award', 'people' => 'fa-user-alt', 'group' => 'fa-users-class');
while ($array = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$return .= '<li data-jstree=\'{"icon":"fal ' . $icon[$array['post_type']] . '"}\'>' . $array['post_title'];
$return .= generate_sitemap($site_id, $array['id']);
$return .= '</li>';
}
$return .= '</ul>';
}
return $return;
}
所以基本上,开始时假设父页面没有任何子页面(初始$return值为空字符串,所以我们不返回空值<ul></ul>)。
仅当有孩子时,才开始构建<ul>所有子页面。
在<li>子页面的内部,让函数调用自身,并将孩子的 ID 作为新的父 ID。如果孩子没有子页面,嵌套函数调用将返回一个空字符串。否则,它将返回 a<ul>及其所有子项。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报