我正在尝试进一步自定义我的网站/论坛的现有修改,但不幸的是,我要求支持的作者目前几乎没有空余时间。
有人可以告知我这个查询可能出错吗?
SELECT date FROM {db_prefix}log_activity
WHERE date = 2015-12-25
( SELECT COUNT(*) AS total FROM {db_prefix}log_online
WHERE ID_MEMBER = $memberID );
我基本上是要查看我的指定日期是否出现在{db_prefix} log_activity中,如果是,请触发{db_prefix} log_online
中找到的所有成员的操作(更多的是代码,但我认为上面的部分是造成我问题的原因..)
我的尝试的完整代码:
if (!in_array('test',$currentBadges))
{
$resultgroup = $smcFunc['db_query']('', "
SELECT date FROM {db_prefix}log_activity
WHERE date = 2015-04-20
( SELECT COUNT(*) AS total FROM {db_prefix}log_online
WHERE ID_MEMBER = $memberID );
");
$totalRow = $smcFunc['db_fetch_assoc']($resultgroup);
{
$badgeAction = 'test';
if (!in_array($badgeAction,$currentBadges) && $totalRow['total'] >= 1)
{
$badgeID = GetBadgeIDByAction($badgeAction);
$ret = AddBadgeToMember($memberID,$badgeID,false);
if ($ret == true)
{
$currentBadges[] = $badgeAction;
$newBadges[] = $badgeAction;
}
}
}
//end badge code
}
我之前从未使用过此网站,希望这种格式有点可读......:P
基本上我试图做的是: IF(日期)=今天 AND(member)已登录 那么奖徽章......
更改尝试的记录:
"WHERE date = 2015-04-20"
WHERE date = "2015-04-20"
答案 0 :(得分:1)
根据您使用"WHERE date = 2015-04-20"
您在双引号查询中使用双引号。
使用这样的单引号和您最初发布的代码中的内容:
$resultgroup = $smcFunc['db_query']('', "
SELECT date FROM {db_prefix}log_activity
WHERE date = '2015-04-20'
( SELECT COUNT(*) AS total FROM {db_prefix}log_online
WHERE ID_MEMBER = $memberID );
");
另外,如果$memberID
不是整数,则还需要引用它。
即:
$resultgroup = $smcFunc['db_query']('', "
SELECT date FROM {db_prefix}log_activity
WHERE date = '2015-04-20'
( SELECT COUNT(*) AS total FROM {db_prefix}log_online
WHERE ID_MEMBER = '$memberID' );
");
有关此内容的更多信息,请阅读Stack
上的以下内容 MySQL.com网站上的和字符串函数: