努力将SQL查询放在一起



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

有人可以建议我此查询可能出错的地方吗?

            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

相关内容

  • 没有找到相关文章

最新更新