插入新更新时将以前的状态更新为死机

时间:2010-03-02 16:03:28

标签: php html mysql database

我的社交网络上有一个简单的插入查询,允许用户在文本区域中输入文本并在其个人资料页面上输出。他们可以选择删除,并按预期将状态标记为已死,并删除更新。问题是,如果他们只是键入一个新的,而不删除已经存在的东西(我希望他们能够做到)从技术上讲,他们没有删除以前的提交,并用旧帖子重新加载页面。 / p>

我希望将它保留在可以删除的位置,并将其标记为db(就像现在一样),但是当它们编写一个新的而不删除时,它会自动将之前的提交标记为已死。< / p>

我在删除脚本上有这个:

$query = "UPDATE `UserUpdates` SET `status` = 'dead' WHERE `id` = '".$UserUpdates."'";
$request = mysql_query($query,$connection);

我是新手,但我理解我需要做的逻辑,我只是​​不确定所需的语法/功能。

3 个答案:

答案 0 :(得分:1)

听起来你将不得不运行2个查询:

  1. 更新UserUpdates以将现有标记标记为已死
  2. 插入新行
  3. 如果您使用Innodb或其他事务引擎,可以使用“BEGIN TRANSACTION”和“COMMIT”包装它们,以便将2个更新作为单个原子操作执行。

    为了简化您的应用程序,可以编写存储过程,以便您的应用程序所需要做的就是调用单个存储过程。

答案 1 :(得分:0)

难道你不能保留所有的状态记录,只需将最新的记录(ID最高的记录)作为当前状态吗?你不需要在添加新的时候将它们标记为死亡,因为你只需要提取最新的记录。

答案 2 :(得分:0)

为什么不在插入新状态后运行当前状态的删除脚本?我假设您知道当前状态ID(我们称之为$c_status_id)。

INSERT INTO statuses VALUES ( ... )
DELETE FROM statuses WHERE id = "$c_status_id"

这样,您只能获得最新的状态更新。