【发布时间】: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,那么我们不必允许然后联系。