小编典典

在5个月内应仅将3个用户插入数据库

sql

进行一些更改后重新发布问题,我之前删除了一些更改。我尽力了,但我不知道如何实现它。

我有一张表fw_invitations

ID  OFFICEID  Consultationdate
------------------------------
1     1       16-06-2013
2     1       16-06-2013
3     1       16-06-2013
4     1       17-08-2014
5     1       17-08-2014

$consultationdate 包含用户输入的日期。

$invcount="Select count(*) as   noofinv,
           Datediff('$consultationdate',max(consultationdate)) as datediffinv 
           from fw_invitations where OFFICEID = 1";

$db->setQuery($invcount);
$invcounts=$db->loadAssoclist();
$noofinv=$invcounts[0]['noofinv'];
$datediffinv=abs($invcounts[0]['datediffinv']);

if($noofinv >3 && $datediffinv <150)
{
  $error_message="Het maximale ";
}

我也在尝试这个,但是下面的查询总是导致0

    $invcount="Select count(*) as noofinv from fw_invitations
    where consultationdate between 
    DATE_SUB($consultationdate,INTERVAL 150 DAY) and
    DATE_ADD($consultationdate,INTERVAL 150 DAY) from fw_invitations where OFFICEID = 1";

我想做的是,如果datediff超过150(5个月),则应在表格中插入不超过3个用户。

除非我输入较长的时间间隔,否则上面的查询无法正常工作。由于我max(consultationdate)在上表中使用的最大日期为2014年8月17日,因此无法验证用户再次输入日期16-06-2013的情况。

简而言之,我想做的是,在5个月的时间内,仅应将3个用户插入数据库。


阅读 157

收藏
2021-04-28

共1个答案

小编典典

我更正了$ consultationdate中的单引号,因为它纠正了它的魅力后,每次都会产生0。

 $invcount="Select count(*) as noofinv from fw_invitations
        where consultationdate between 
        DATE_SUB('$consultationdate',INTERVAL 150 DAY) and
        DATE_ADD('$consultationdate',INTERVAL 150 DAY) from fw_invitations where OFFICEID = 1";
2021-04-28