Loading...
PHP/MySQL | Снятие банана по окончании времени
Есть система бана, пользователя блокирует, но не разблокирует. Ладно, ближе к делу - нацарапал код снятия бана после того, как время бана в таблице меньше, чем time(). Удалять должно, но не удаляет.
Код:
$bq = $db->query("SELECT * FROM `ban`");
$nb = $bq->num_rows;
$b = $bq->fetch_assoc;
if($b['banofftime'] < time()){
$db->query("DELETE FROM `ban` WHERE `id` = '".$b['id']."'");
}

В чём может быть беда?
CreepMatis, введи в конце запрсов or die(mysql_error())
RUS (18.06.2015 в 16:28)
CreepMatis, введи в конце запрсов or die(mysql_error())

MySQLi жи:D
Ошибок не выдаёт)
if($b['banofftime'] < time()){

mysql_query("DELETE FROM `ban` WHERE `id` = '".$b['id']."'");

}

если не подxодит,значит дело в $b['banofftime']
NONICKNAME (18.06.2015 в 16:31)
if($b['banofftime'] < time()){

mysql_query("DELETE FROM `ban` WHERE `id` = '".$b['id']."'");

}

если не подxодит,значит дело в $b['banofftime']

Самое интересное, что если выбирать из базы бан, где `id` = $user['id'], то бан снимается... Но у других юзеров - нет)
Решил проблему?
Так же, заметил, что ты делаешь выборку всей таблицы, что является критической ошибкой любого разработчика.
Следствие - если у тебя в таблице 1000 или больше записей? Зачем тянуть их все?
Сделай проще - выборка берется по ID зашедшего на сайт.
Проверяем, есть ли мой ID в таблице. Если есть - проверяем аргумент времени. Если нет - то все хорошо.
___ (22.06.2015 в 00:05)
Решил проблему?
Так же, заметил, что ты делаешь выборку всей таблицы, что является критической ошибкой любого разработчика.
Следствие - если у тебя в таблице 1000 или больше записей? Зачем тянуть их все?
Сделай проще - выборка берется по ID зашедшего на сайт.
Проверяем, есть ли мой ID в таблице. Если есть - проверяем аргумент времени. Если нет - то все хорошо.

Давно уже исправил) И выборку из базы тоже переделал давно)
CreepMatis, ок. Тогда закрывай.
Онлайн: 5
Время:
Gen. 0.0989
(c) Bym.Guru 2010-2025