0

我目前正在使用 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)
4

1 回答 1

0

替换这个

    WHERE board_id='$row_b[board_id]'

经过

   WHERE board_id='".$row_b['board_id']."'
                            ^--------^--------you need quotes here
于 2013-07-27T14:30:56.870 回答