我正在尝试为我的网站/论坛进一步自定义现有修改,但不幸的是,我寻求支持的作者目前几乎没有空闲时间。
有人可以建议我此查询可能出错的地方吗?
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(日期)= 今天和(成员)已登录然后奖励徽章...
更改尝试的日志:
"WHERE date = 2015-04-20"
WHERE date = "2015-04-20"
根据您使用"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' );
");
- 但我有点怀疑。但是,我需要指出这一点以防万一。
此内容的更多信息,请阅读有关堆栈的以下内容
- 何时在 MySQL 中使用单引号、双引号和反引号
和 MySQL.com 网站上的字符串函数:
- https://dev.mysql.com/doc/refman/5.0/en/string-functions.html