我之前遇到过这个问题,但我没有问过,因为我找到了一个工作,但是这次我不太幸运。
我正在尝试为每个“pg.pcat”(页面类别)创建一个简单的列表,以显示每个类别的5个最新链接(我知道我没有添加LIMIT
或ORDER BY
)。
$q2 = "
SELECT pg.pcat, p.page_id, p.link_title
FROM pages AS P
INNER JOIN page_categories AS pg ON pg.pc_id = $sidenav
";
$r2 = @mysqli_query ($dbc, $q2); // Run the Query.
while ($qarr = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
if(!isset($printed)) {
echo "<div class=\"sideNavSpan\">{$qarr['pcat']}</div>";
$printed = true;
}
echo "
<li>
<a href=\"page.php?pid={$qarr['page_id']}\">{$qarr['link_title']}</a>
</li>
";
}
我需要这样的东西,但我无法弄清楚如何对$qarr
中的值使用for循环。
----pg.pcat1
p.link_title
p.link_title
p.link_title
p.link_title
p.link_title
----pg.pcat2
p.link_title
p.link_title
p.link_title
p.link_title
p.link_title
----pg.pcat3
p.link_title
p.link_title
p.link_title
p.link_title
p.link_title
等。 救命?拜托,谢谢你:)
答案 0 :(得分:1)
您需要在SQL查询中通过pg.pcat进行排序,并将其全部包含在if测试中,以确保至少返回了一行
$currCat = '';
$printed = false;
while ($qarr = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
if($currCat != $qarr['pcat']) { // category has changed
if ($printed) { // we already printed an opening <ul> so we need to close it
echo '</ul>';
$printed = true;
}
echo"<div class=\"sideNavSpan\">{$qarr['pcat']}</div><ul>";
$currCat = $qarr['pcat'];
}
echo "<li><a href=\"page.php?pid={$qarr['page_id']}\">{$qarr['link_title']}</a></li>";
}
echo '</ul>';