我目前正在使用php和mysql创建一些互联网论坛,我遇到了障碍......我不知道如何实现需要的约束,甚至如何将其实现到我的网站中(sql触发器或过程或php脚本?)。
所以无论如何,我有一个名为blog的数据库,有两个表:帖子和帖子。在posts表中有两列将参与其中,reply_id和parent_id,在posts表的每个插入中,我需要将刚刚插入的行的reply_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)
答案 0 :(得分:0)
替换此
WHERE board_id='$row_b[board_id]'
通过
WHERE board_id='".$row_b['board_id']."'
^--------^--------you need quotes here