-4

我正在尝试为我的网站/论坛进一步定制现有的修改,但不幸的是,我请求支持的作者目前几乎没有空闲时间。

有人可以告诉我这个查询可能在哪里出错吗?

            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

基本上我想做的是:如果(日期)=今天并且(会员)已经登录,那么奖励徽章......

更改尝试的日志:

            "WHERE date = 2015-04-20"
            WHERE date = "2015-04-20"
4

1 回答 1

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不是整数,它也需要被引用。

IE:

$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 网站上的字符串函数:

于 2015-04-20T17:23:14.227 回答