gpt4 book ai didi

php - 凹凸系统(显示最近的主题并在顶部回复)

转载 作者:行者123 更新时间:2023-11-29 00:45:35 27 4
gpt4 key购买 nike

现在我使用这个对论坛中的所有主题进行排序:

SELECT * FROM board ORDER BY id DESC LIMIT 50

这显示了在顶部创建的最新线程,但我如何才能显示具有最新回复的线程,同时在顶部显示新线程?

例子:

  1. This is a new thread
  2. This is a old thread
  3. This is a old thread

收件人:

  1. This is a old thread with a new reply
  2. this is a new thread without replies
  3. This is a old thread

如果有任何帮助,这是回复代码:

$sql="INSERT INTO reply (id, name, subject, maintext, ip, date, img)

VALUES

('$idid','$name','$subject','$maintext','$encoded','$date','$image_name')";

if (!mysql_query($sql,$con))

{

die('Error: ' . mysql_error());

}

mysql_query("UPDATE board SET replycount = replycount + 1 WHERE id = $idid");

最佳答案

如果我理解你的问题,你想按最近的回复和最新的话题进行排序。如果没有关于您的表的更多信息,我无法为您提供准确的语法,但您的查询可能看起来像这样:

SELECT *
FROM board
ORDER BY GREATEST(replyDateTime, creationDateTime)
LIMIT 50;

这使用了 GREATEST函数按 replyDateTimecreationDateTime 对每一行进行排序...以较新的为准。

编辑:

如果您的回复信息在一个单独的表中,您的查询可以使用左连接,然后为论坛中的每个帖子选择最新的回复...然后使用 GREATEST 选择帖子的创建日期,或帖子的最新回复。

/* You will need to specify all your columns in board instead of using * */
SELECT b.ID, b.CreationTimeStamp, MAX(r.CreationTimestamp)
FROM
board b
LEFT JOIN replies r ON r.BoardID = b.ID
/* Include all your columns in your select from board here in your group by */
GROUP BY b.ID, b.CreationTimeStamp
ORDER BY GREATEST(b.CreationTimestamp, MAX(r.CreationTimestamp))
LIMIT 50;

关于php - 凹凸系统(显示最近的主题并在顶部回复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com