我有一个类别列表,其中包含单个行的删除按钮。当我单击delete
时,我正在更新数据库中的一个字段以进行跟踪。列名称为“已删除”。如果我点击delete
,则会更新为1
其他0
。
if ($_REQUEST['action'] == 'delete')
{
$Deleted = $conn->query("update r_category SET deleted = 1 where id_category = ".$id);
}
}
如果误删除,我已编写代码将其更新回0
:
if ($_REQUEST['action'] == 'undo') {
$UndoDelete = $conn->query("update r_category SET deleted = 0");
}
我正在寻找的是当用户没有“撤消”时,删除的文件必须 1周后从数据库中删除。我该怎么做?任何人都可以为我建议一些代码。
我已经写了这段代码,我怎么称呼这个
<?php
$Url = "http://techdefeat.com/admin/category.php?action=undo";
$Handle = curl_init($Url);
$Response = curl_exec($Handle);
curl_close($Handle);
?>
答案 0 :(得分:1)
首先,您需要更正undo delete
代码。否则,它基本上取消删除表中的所有记录。无论如何,我会就你的问题分享我的建议。
由于您询问的是cron作业,因此您可以在Web应用程序中创建一个操作,以便在特定时间由每日cron作业调用。例如,以下cron作业将在每天凌晨1点运行并调用给定的URL。
0 1 * * * curl http://domain.name/endpoint/url
在这种情况下,您必须为deleted
字段保留3种状态,
最初,deleted
字段将设置为0.如果有人点击删除按钮,则可以将其更新为1,等待删除&#34;。此外,您还需要通过添加deletedDate
字段来更改表格结构,当deleted
字段更新为1时,该字段将使用当前时间戳设置。
在每日cron作业运行的情况下,我们可以在操作中更新所有&#34;等待删除&#34; (deleted
= 1)通过设置deletedDate
= 2和deleted
=&#34;当前时间戳&deletedDate
将 class addMaxLength {
constructor() {
this.restrict = 'A';
this.scope = {
maxLength : '='
};
}
// optional link function
link(scope, element, attributes) {
if(scope.maxLength > 0){
element.attr('md-maxlength',scope.maxLength);
}
}
}
addMaxLength.$inject = [];
export { addMaxLength };
超过一周的记录标记为已删除#34;
这只是我的观点,通常,不建议将cron作业用于这类任务,因为在可扩展性方面存在问题。推荐的方法是实现任务队列并通过它们进行处理。