我的社交网络上有一个简单的插入查询,允许用户在文本区域中输入文本并在其个人资料页面上输出。他们可以选择删除,并按预期将状态标记为已死,并删除更新。问题是,如果他们只是键入一个新的,而不删除已经存在的东西(我希望他们能够做到)从技术上讲,他们没有删除以前的提交,并用旧帖子重新加载页面。 / p>
我希望将它保留在可以删除的位置,并将其标记为db(就像现在一样),但是当它们编写一个新的而不删除时,它会自动将之前的提交标记为已死。< / p>
我在删除脚本上有这个:
$query = "UPDATE `UserUpdates` SET `status` = 'dead' WHERE `id` = '".$UserUpdates."'";
$request = mysql_query($query,$connection);
我是新手,但我理解我需要做的逻辑,我只是不确定所需的语法/功能。
答案 0 :(得分:1)
听起来你将不得不运行2个查询:
如果您使用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"
这样,您只能获得最新的状态更新。