Я пытаюсь доработать существующую модификацию для моего сайта / форума, но, к сожалению, у автора, которого я попросил о поддержке, сейчас мало свободного времени.
Может кто-нибудь посоветовать, где я могу ошибаться с этим запросом?
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"
Согласно вашему редактированию в использовании "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:
Других решений пока нет …