Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: mysql DELETE

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
etoYA
Отправлено: 23 Января, 2012 - 04:41:37
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Таким образом я удаляю разбаниваю пользователя, а как узнать, какого пользователя я разбаил?
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("DELETE FROM `banned` WHERE `unban_date` <= '$now'");

(Отредактировано автором: 23 Января, 2012 - 05:23:30)

 
 Top
Okula
Отправлено: 23 Января, 2012 - 07:03:59
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




До того как удалишь из базы записи получи их через SELECT и будешь знать кого удаляешь Улыбка Улыбка
 
 Top
x_nick_x
Отправлено: 23 Января, 2012 - 09:38:01
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




По суть $now это и есть тот кого разбаниваешь.
 
 Top
Zuldek
Отправлено: 23 Января, 2012 - 09:56:06
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




x_nick_x пишет:
По суть $now это и есть тот кого разбаниваешь.
]

Нет. Названия полей говорят за себя. Это дата, а сам запрос используется для "разбана" всех забаненых раньше даты переданной в переменной $now.
 
 Top
x_nick_x
Отправлено: 23 Января, 2012 - 10:52:51
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




Ясно.
 
 Top
etoYA
Отправлено: 23 Января, 2012 - 20:58:12
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Zuldek, да это так и есть.
Okula, и как это сделать?)

Вот так я баню
PHP:
скопировать код в буфер обмена
  1. // Определение времени бана
  2. if ($type == 'Permament') $ban = '2147461200';
  3. else $ban = strtotime(date('d.m.Y', strtotime('+'.$time.'day')));


Вот так разбаниваю
PHP:
скопировать код в буфер обмена
  1.  
  2. // Разблокировка пользователя
  3. function unban() {
  4.         $now = strtotime(date('d.m.Y'));
  5.         $result = mysql_query("DELETE FROM `banned` WHERE `unban_date` <= '$now'");
  6.         if (mysql_affected_rows() > 0) {
  7.                 logs('Разблокировано '.mysql_affected_rows().' пользователя');
  8.                 return true;
  9.         }
  10.         else return false;
  11. }
  12.  
 
 Top
Okula
Отправлено: 23 Января, 2012 - 21:05:17
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `banned` WHERE `unban_date` <= '$now'
 
 Top
etoYA
Отправлено: 23 Января, 2012 - 21:07:44
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Okula, хм.. Точно.
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Января, 2012 - 21:22:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




У Вас сама реализация бана не верна просто.
Не надо ничего удалять.
Есть, к примеру, поле `ban` в таблице `banned`.
По умолчниию значение == 0.
Каждый раз при неверной авторизации(или что у Вас там) значение увеличиваем не 1.
Как только значение == 5 (на пример) блокируем.
И уже в дальнейшем делаем не удаление, а обнуление.
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("UPDATE `banned` SET `ban`= 0  WHERE `unban_date` <= '$now'");
  3.  

(Отредактировано автором: 23 Января, 2012 - 21:26:51)

 
 Top
Okula
Отправлено: 23 Января, 2012 - 21:37:01
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Так он банит на время, а не при неверном входе. Как бан на форумах за нарушение правил.
 
 Top
armancho7777777 Супермодератор
Отправлено: 24 Января, 2012 - 08:52:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Okula пишет:
Так он банит на время, а не при неверном входе. Как бан на форумах за нарушение правил.

А что, большая разница?)
Зато хоть статистика будет: кто и сколько раз был забанен.
 
 Top
snikers987
Отправлено: 24 Января, 2012 - 09:02:56
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Я бы сделал так:
Добавил в таблицу юзвери два поля:
1. banned значение по умолчанию 0
2. ban_expires
И при бане ставил в первое поле значение к примеру 1, а во второе писал метку времени strtotime('+ 1 day', time());

а потом запрос на разбан
PHP:
скопировать код в буфер обмена
  1.  
  2. $mysqli->query('UPDATE `users` SET `banned` = 0 WHERE `banned` = 1 AND `ban_expires` <= '.time());
  3.  


Так можно и уровень бана установить, к примеру значение поля banned = 2 - забанен перманентно

(Отредактировано автором: 24 Января, 2012 - 09:07:55)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB