首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP最近的论坛不显示某些论坛

PHP最近的论坛不显示某些论坛
EN

Stack Overflow用户
提问于 2010-09-04 06:38:12
回答 2查看 67关注 0票数 0

我已经设置了一种方法来显示最后5个帖子在我的网站的主页上。我想隐藏3个具体的论坛(我查了id,他们是24,25,35。以防万一这意味着什么)。我可以让他们隐藏,但是,它不会显示5个帖子。所以我希望能够显示最近的5个跳过这3个论坛,同时仍然显示下5个论坛。这也是一个phpBB论坛,这也意味着任何东西。

下面是我的php代码。

代码语言:javascript
复制
 $recent = mysql_query("SELECT * FROM forum_posts ORDER BY post_time DESC LIMIT 5");
 while ($recent_row = mysql_fetch_assoc($recent)){
  //Get Data
  $post_id = $recent_row['post_id'];
  $topic_id = $recent_row['topic_id'];
  $forum_id = $recent_row['forum_id'];
  $poster_id = $recent_row['poster_id'];
  $post_time = $recent_row['post_time'];

  if ($forum_id != 24 && $forum_id != 25 && $forum_id != 35){
   //Get Topic Name
   $topic_name = mysql_query("SELECT topic_title FROM forum_topics WHERE topic_id='$topic_id'");
   $topic_name = mysql_fetch_assoc($topic_name);
   $topic_name = $topic_name['topic_title'];

   //Get Username
   $username = mysql_query("SELECT username FROM forum_users WHERE user_id='$poster_id'");
   $username = mysql_fetch_assoc($username);
   $username = $username['username'];

   echo "<a href = 'http://www.ravenwolfguild.net/forum/memberlist.php?mode=viewprofile&u=$poster_id' class = 'LinkStyle'>$username</a> posted in \"".
   "<a href = 'http://www.ravenwolfguild.net/forum/viewtopic.php?f=$forum_id&t=$topic_id&p=$post_id#p$post_id' class = 'LinkStyle'>$topic_name</a>\"<br>";
  }
 }
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-04 06:50:07

看起来您事先知道哪些ID将被拒绝。然后在第一个查询中这样做-

代码语言:javascript
复制
$recent = mysql_query("SELECT * FROM forum_posts where forum_id NOT IN (24, 25, 35) ORDER BY post_time DESC LIMIT 5"); 

仍然提取5个结果,不包括不需要的

下面是合并查询,它执行的任务与您的3个查询执行的任务相同

代码语言:javascript
复制
$recent = mysql_query("SELECT fposts.username FROM forum_posts as fposts INNER JOIN forum_topics AS ftopics ON (ftopics.topic_id = fposts.topic_id)
INNER JOIN forum_users AS fusers ON (fusers.user_id = forum_posts.poster_id)

WHERE fposts.forum_id NOT IN (24, 25, 35) ORDER BY fposts.post_time DESC LIMIT 5");

while ($recent_row = mysql_fetch_assoc($recent))
{
     echo "$username posted in \"". "$recent_row['username']\""; 
}
票数 1
EN

Stack Overflow用户

发布于 2010-09-04 07:01:53

所有内容都在一个查询中:

代码语言:javascript
复制
$query = "
SELECT *, 
(SELECT ft.topic_title FROM forum_topics ft WHERE ft.topic_id= fp.topic_id) topic_title, 
(SELECT fu.username FROM forum_users fu WHERE fu.user_id= fp.poster_id) username 
FROM fp.forum_posts 
where fp.id not in (24, 25, 35) 
group by fp.forum_id 
ORDER BY fp.post_time DESC 
LIMIT 5";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3640033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档