我在这里并不陌生,但是我也不问任何问题,因为每当遇到问题时,我都会在论坛或博客中找到与此处相关的问题的解决方案,但是我在此问题上没有任何成功。
在数据库中,我具有相关的表帖子和类别,在一个MySQL查询中,我在其类别中显示帖子的标题。到目前为止,一切正常。但是,在while循环结构中,不能重复带有is-sub类的标签。有什么办法可以停止此重复,然后再重复一次?
感谢您的帮助
echo '
<nav class="navbar">
<ul>';
$sql = Query("SELECT * FROM posts INNER JOIN categories ON post_category = category_id ORDER BY post_category, post_title");
$is_category = NULL;
while ($row = mysqli_fetch_assoc($sql)) :
if ($row['post_category'] != $is_category) {
echo '<li class="has-sub"><a href="#" class="opendown">' . $row['category_title'] . '</a>';
$is_category = $row['post_category'];
}
// stop loop
echo '<ul class="is-sub">';
// return loop
echo '<li><a href="?doc=' . $row['post_id'] . '">' . $row['post_title'] . '</a></li>';
// stop loop
echo '</ul>';
// return loop
echo '</li>';
endwhile;
echo '
</ul>
</nav>';
最佳答案
如果我了解您要执行的操作,那么我认为下面的代码将起作用。如果is_sub
标记确实只显示一次,则可以使用:
<?php
echo '
<nav class="navbar">
<ul>';
$sql = Query("SELECT * FROM posts INNER JOIN categories ON post_category = category_id ORDER BY post_category, post_title");
$is_category = NULL;
$issub = false;
while ($row = mysqli_fetch_assoc($sql)) :
if ($row['post_category'] != $is_category) {
echo '<li class="has-sub"><a href="#" class="opendown">' . $row['category_title'] . '</a>';
$is_category = $row['post_category'];
echo '<ul class="is-sub">';
}
if(!$issub) {
echo '<ul class="is-sub">';
$issub = true;
}
echo '<li><a href="?doc=' . $row['post_id'] . '">' . $row['post_title'] . '</a></li>';
echo '</ul>';
echo '</li>';
endwhile;
echo '
</ul>
</nav>';
?>