2 回答
TA貢獻1921條經驗 獲得超9個贊
我知道這與您的代碼非常不同,但是我?guī)字芮搬槍︻愃魄闆r編寫了此代碼,因此我根據(jù)您的情況對其進行了一些調整:
<?php
echo get_items(1);
function get_items($id){
global $conn; //db connection object
$html = '';
$sql = mysqli_query($conn, "SELECT * FROM snm_content WHERE catid = $id");
while($row = mysqli_fetch_assoc($sql)){
$html .= '<li>'.$row['title'].'</li>';
}
$sql = mysqli_query($conn, "SELECT * FROM snm_categories WHERE parent_id = $id");
while($row = mysqli_fetch_assoc($sql)){
$html .= '<li>'.$row['title'].'
<ul>'.get_items($row['id']).'</ul>
</li>';
}
return $html;
}
?>
我認為您可以輕松修改它以獲得您需要的確切 html 標記,但本質就在那里。如果您對此有任何疑問,請不要猶豫!
順便說一下,我使用了和你一樣的數(shù)據(jù)庫結構,我在 snm_content 和 snm_categories 中輸入了一些行,這是我得到的輸出:
<li>cat 0
<ul>
<li>article 0</li>
<li>cat 1
<ul>
<li>article 1</li>
<li>article 2</li>
</ul>
</li>
<li>cat 2
<ul>
<li>article 3</li>
</ul>
</li>
</ul>
</li>
<li>cat 3
<ul>
<li>article 4</li>
</ul>
</li>
TA貢獻1864條經驗 獲得超2個贊
我看到的第一個問題是在下面的代碼中
while($submenu = $submenuconn->fetch_assoc()){
$artikelsubs = '<li class="menu-item"><a href="info/'.$submenu['alias'].'">'.$submenu['title'].'</a>';
}
如果有 10 篇文章,您存儲的是最后一篇嗎?此外,li由于某種原因,您沒有結束標簽。
由于我沒有數(shù)據(jù)庫來檢查這一點,但根據(jù)我的理解,循環(huán)應該如下所示
while($submenu = $submenuconn->fetch_assoc()){
$artikelsubs .= '<li class="menu-item"><a href="info/'.$submenu['alias'].'">'.$submenu['title'].'</a></li>';
}
此外,如果文章列表基于 ,cat_id那么您也應該存儲此數(shù)據(jù)
$menuData['articles'][$menu['cat_id']] = $artikelsubs;
并確保artikelsubs在內部 while 循環(huán)之前清空。然后你需要替換你的$html .= $artikelsubs;從menuData對象中獲取它
- 2 回答
- 0 關注
- 176 瀏覽
添加回答
舉報
