Сложно собрать 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 (дата) = сегодня
AND (участник) вошел в систему
ТОГДА награждает знак …

Журнал измененных попыток:

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

-4

Решение

Согласно вашему редактированию в использовании "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.com:

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]