Php joomla mysql日期数学逻辑

Php joomla mysql日期数学逻辑,php,mysql,joomla,logic,Php,Mysql,Joomla,Logic,我试图通过php和mysql创建一个条件,用户可以在formid的24小时内提交最多5次提交 // Define the maximum number of submissions for 24 hours $max = 5; $user = JFactory::getUser(); $db = JFactory::getDbo(); $query = $db->getQuery(true); // Setup the query. $query->select('COU

我试图通过php和mysql创建一个条件,用户可以在formid的24小时内提交最多5次提交

// Define the maximum number of submissions for 24 hours
$max = 5;

$user = JFactory::getUser();
$db   = JFactory::getDbo();
$query   = $db->getQuery(true);

// Setup the query.
$query->select('COUNT('.$db->qn('Username').')')
    ->from($db->qn('#__rs_submissions'))
    ->where($db->qn('FormId').'='.$db->q($formId))
    ->where($db->qn('Username').'='.$db->q($user->get('username')));
    ->where($db->qn('DateSubmitted').'>='.$db->q('DATE_SUB(NOW(), INTERVAL 1 DAY)'))

$db->setQuery($query);
$counter = $db->loadResult();

if ($counter >= $max){
  $formLayout = '<p style="color:blue;">Oops !! Your Limits are Exhausted for 24 hours </p>';
}
}
是否有人能提供帮助和建议-我做错了什么,以及遵守24小时限制的解决方案

编辑 我想应该进行($db->qn('DateSubmitted')。>='.$db->q('DATE_SUB(现在(),间隔1天)))的计数,以及最后记录的时间应该是计算24小时间隔的基础,仍然不确定,因为无法达到预期的间隔


开始赏金-有人能帮忙吗。

现在不用CURDATE


->其中($db->qn('DateSubmitted')。>='.$db->q('CURDATE()-INTERVAL 1 DAY')

您不需要引用该函数。如果这样做,您将得到的最终查询将是:

DateSubmitted >= 'DATE_SUB(NOW(), INTERVAL 1 DAY)'
这不是你想要的。 由于该部分的内容是您知道的(而不是从用户处获得的字符串),因此您不需要引用它。您应该按原样使用它:

 ->where($db->qn('DateSubmitted'). ' >= DATE_SUB(NOW(), INTERVAL 1 DAY)')

这是Joomla,对吗?是的,但它对cms类型有影响吗?首先我只想把你的问题贴上标签。其次,这里有很多mysql开发人员可以快速回答你的问题,但如果它必须在Joomla代码对象中成为现实,就不会了。你试过
=
?这条规则对你没有任何影响提到->where($db->qn('DateSubmitted')。>='.$db->q('CURDATE()-INTERVAL 1 DAY'))是的,它像一个符咒一样工作,我错误地使用了它-谢谢
 ->where($db->qn('DateSubmitted'). ' >= DATE_SUB(NOW(), INTERVAL 1 DAY)')