【问题标题】:Transfer data from one table to another on insert在插入时将数据从一个表传输到另一个表
【发布时间】:2013-10-29 17:31:31
【问题描述】:

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

【问题讨论】:

    标签: php mysql sql phpmyadmin forum


    【解决方案1】:

    替换这个

        WHERE board_id='$row_b[board_id]'
    

       WHERE board_id='".$row_b['board_id']."'
                                ^--------^--------you need quotes here
    

    【讨论】:

    • 嗯,工作,有正确的语法总是好的,无论如何关于我的数据传输的 sql 触发器有什么想法吗?或者我应该在回复提交时在 php 脚本中更新 topic_order?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2014-10-15
    相关资源
    最近更新 更多