Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据所选有效期,删除1个月或3个月后的行_Php_Html_Mysql_Sql - Fatal编程技术网

Php 根据所选有效期,删除1个月或3个月后的行

Php 根据所选有效期,删除1个月或3个月后的行,php,html,mysql,sql,Php,Html,Mysql,Sql,我想删除数据库中的旧记录,该数据库存储来自HTML表单的条目,该表单由 身份证 名字 电子邮件 输入日期(用户提交表单时记录的时间戳) 有效期(用户可以选择30天或90天作为有效期) 我想根据从输入日期中选择的有效期,使行过期并在30/90天后删除它 我发现了这个,但是如何修改它以满足我的需要呢 DELETE FROM myTable WHERE date_of_entry < DATEADD(MONTH, -1, GETDATE()) DELETE FROM myTable,其中项目的

我想删除数据库中的旧记录,该数据库存储来自HTML表单的条目,该表单由

  • 身份证
  • 名字
  • 电子邮件
  • 输入日期(用户提交表单时记录的时间戳)
  • 有效期(用户可以选择30天或90天作为有效期)
  • 我想根据从输入日期中选择的有效期,使行过期并在30/90天后删除它

    我发现了这个,但是如何修改它以满足我的需要呢

    DELETE FROM myTable WHERE date_of_entry < DATEADD(MONTH, -1, GETDATE())
    
    DELETE FROM myTable,其中项目的日期
    另外请注意,我使用的表单将值validity发送为30或90
    $duration=$\u POST['duration']


    这个检查应该由MySQL本身执行。我在MySQL中使用phpMyAdmin,您可以执行以下操作:

    delete t from mytable t
        where date_of_entry < curdate() - interval validity day;
    
    从MyT表中删除t
    其中,输入的日期

    这假设
    validity
    是数字30或90。

    在MySQL中,您可以执行以下操作:

    delete t from mytable t
        where date_of_entry < curdate() - interval validity day;
    
    从MyT表中删除t
    其中,输入的日期

    这假设
    validity
    是数字30或90。

    基本上,如果当前日期超过
    date\u条目
    加上
    validity
    天数,则必须删除过时行,方法如下:

    now() > date_add(date_of_entry, interval validity day)
    
    id |入境日期|有效期 -: | :------------------ | -------: 1 | 2018-03-11 18:16:43 | 30 1 | 2018-01-10 18:16:43 | 90
    dbfiddle

    基本上,如果当前日期超过
    date\u of\u条目
    加上
    有效期
    天数,则必须以这种方式删除过时的行:

    now() > date_add(date_of_entry, interval validity day)
    
    id |入境日期|有效期 -: | :------------------ | -------: 1 | 2018-03-11 18:16:43 | 30 1 | 2018-01-10 18:16:43 | 90 dbfiddle

    从mytable中删除日期项<
    日期(CURDATE(),有效期间隔*-1天);
    
    从mytable中删除日期项<
    日期(CURDATE(),有效期间隔*-1天);
    
    您可以添加注释让我了解您为什么使用日期\加载项删除查询您可以添加注释让我了解您为什么使用日期\加载项删除查询吗query@McNets . . . 我猜你的意思是“为什么投否决票”。我也很好奇。@McNets。我猜你的意思是“为什么投否决票”。我也很好奇。
    delete 
    from   tbl
    where  now() > date_add(date_of_entry, interval validity day)
    
    select * from tbl;
    
    id | date_of_entry | validity -: | :------------------ | -------: 1 | 2018-03-11 18:16:43 | 30 1 | 2018-01-10 18:16:43 | 90
    DELETE FROM mytable WHERE date_of_entry <
      DATE_ADD( CURDATE() ,INTERVAL validity*-1 DAY) ;