【问题标题】:Joomla Logic PHP Query with 4 parameters带有 4 个参数的 Joomla Logic PHP 查询
【发布时间】:2015-10-24 02:03:09
【问题描述】:

逻辑查询

你好,

我们有两个逻辑

a) 联系客户的最大次数: 标记限制联系客户的次数。我们将供应商可以联系客户的最大次数设为 2。有这个php代码

$max = 2;
$listing = JRequest::getInt('listing');

if($listing) {
$db = JFactory::getDBO();
$db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submission_values WHERE `FormId`='".(int) $formId."' AND `FieldName`='listing' AND `FieldValue`='".$listing."' ");
$nrSub = $db->loadResult();

if ($nrSub >= $max) {
  $formLayout = '<p><em>Sorry, This customer has already been contacted maximum number of times</em></p>';
}
}

b) 供应商可以在表单中联系客户的最大次数

$max = 10;
$user = JFactory::getUser();
$db   = JFactory::getDbo();
$query   = $db->getQuery(true);
 
$query->select('COUNT('.$db->qn('Username').')')
    ->from($db->qn('#__rsform_submissions'))
    ->where($db->qn('FormId').'='.$db->q($formId))
    ->where($db->qn('Username').'='.$db->q($user->get('username')));
 
$db->setQuery($query);
$counter = $db->loadResult();
 
if ($counter >= $max){
  $formLayout = '<p style="color:blue;">You have already contacted 10 customers </p>';
}

两者都运行良好 - 现在我们必须设置一个条件:- 经销商如果尝试再次联系他之前联系过的同一客户,也应该显示错误消息

猜测它会基于 4 个参数

统计提交并与Max Parameter比较为1

强大

上市

用户名

尝试此代码 - 但似乎不尊重

$max = 1;
$user = JFactory::getUser();
$listing = JRequest::getInt('listing');

if($listing) {
$db = JFactory::getDBO();
$db->setQuery("SELECT COUNT('.$db->qn('Username').') FROM #__rsform_submission_values WHERE `FormId`='".(int) $formId."' AND `FieldName`='listing' AND `FieldValue`='".$listing."' ");
$nrSub = $db->loadResult();

if ($nrSub >= $max) {
  $formLayout = '<p><strong>Sorry, You have already contacted this customer</strong></p>';
}
}

以便匹配 - 如果用户名已经联系过一次表单的列表 id - 那么应该显示错误消息

可能是用户名参数需要在代码中添加 - 1

有人可以提供帮助、帮助和建议以实现所需 - 如何设置逻辑查询

【问题讨论】:

  • 我认为当经销商使用新表(如contact_id、leader_id、customer_id)联系客户时,您必须存储经销商和客户的值,现在您必须在检查最大计数逻辑后检查两个id
  • 你好 - 值已经存储在用户、表单、列表等中。你能协助逻辑语句
  • 您希望从 COUNT(username) 获得什么?这会告诉你有多少个用户名。
  • 好的。因此,在领导联系客户之前,请放置逻辑语句,例如 select COUNT(*) from where customer_id= and customer_id=。检查这个计数,如果它是 1,那么我们不必允许然后联系。

标签: php mysql joomla


【解决方案1】:

如果您使用 COUNT,我认为您也应该应用 GROUP BY,例如:

SELECT COUNT('.$db->qn('Username').') FROM #__rsform_submission_values WHERE `FormId`='".(int) $formId."' AND `FieldName`='listing' AND `FieldValue`='".$listing."' GROUP BY '.$db->qn('Username').'"

【讨论】:

    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2019-10-20
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多