我目前正在使用 php 和 mysql 制作一些互联网论坛,并且遇到了障碍......我不知道如何实现所需的约束,甚至不知道如何将它准确地实现到我的网站中(sql 触发器或程序或php脚本?)。
所以无论如何,我有一个名为 blog 的数据库,有两个表:帖子和线程。在帖子表中,有两列将参与此操作,reply_id 和 parent_id,在每次插入帖子表时,我需要将刚刚插入的行的回复 ID 设置为线程表 topic_order,其中 topic_id=parent_id.. .
显示主题的页面,按照最高的 topic_order 对它们进行排序,因此较高的reply_id 将意味着较高的 topic_order,并将一个线程撞到列表的顶部。
$result_t = mysqli_query($con,"SELECT * FROM threads WHERE board_id='$row_b[board_id]' ORDER BY topic_order DESC");
目前正在显示http://fenster.myftp.org/blog/forums/board.php?id=1
我需要一个 sql 触发器,通过反复试验,我发现我可以使用 reply_id 来查找刚刚插入的行,然后将其限制为仅该行的数据
CREATE TRIGGER `bump` AFTER INSERT ON `posts`
FOR EACH ROW UPDATE threads
SET topic_order=(SELECT reply_id FROM posts ORDER BY reply_id DESC LIMIT 1)
WHERE topic_id=(SELECT parent_id FROM posts ORDER BY reply_id DESC LIMIT 1)