[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проверка поступивших данных
igorianru
Здравствуйте.
В безе имеятся записи через зяпятую ip адресы, 127.0.0.1., 127.0.0.2, 127.0.0.3, 127.0.0.4,...


подскажите подалуйста как сделать проверку.


if ($ip ........ )
{ echo(‘такой ip уже есть в базе’); } else { выполняется сценарий добавления ip}



Спустя 15 минут, 9 секунд (10.07.2011 - 13:27) Invis1ble написал(а):
igorianru
В БД ? Это все в одном поле храниться или как?

Спустя 13 минут, 19 секунд (10.07.2011 - 13:40) igorianru написал(а):
Да, перечень айпишников а одном поле хранится. нужно это поле просканировать если от запятой до запятой нету совпадений то выполнить сценарий.

к примеру если зашол человек с айпи 127.0.0.1 функция проверяет в бд поле `ip`в котором записанно: 127.0.0.1., 127.0.0.2, 127.0.0.3, 127.0.0.4,...
находит такой же айпи то говорит что такой айпи есть.

Спустя 20 минут, 24 секунды (10.07.2011 - 14:01) Winston написал(а):
Выбираешь поле с ip
потом разбиваешь их по запятой, и проверяешь
Например так
$ip = explode(',', $row['ip']);
if(in_array($_SERVER['REMOTE_ADDR'], $ip))
echo 'есть';
else
echo 'нету';

Спустя 6 минут, 8 секунд (10.07.2011 - 14:07) Invis1ble написал(а):
лучше как-то так, имхо:
$res = mysql_query("SELECT COUNT(*) FROM `table` WHERE `ip` RLIKE '(^|,)" . preg_quote($ip) . "(,|$)'") or die(mysql_error());
if (mysql_num_rows($res)) {
// такой ip есть
}
else {
// ip не найден
}

Спустя 14 минут, 19 секунд (10.07.2011 - 14:21) igorianru написал(а):
Спасибо всем. Invis1ble мне ваш вариант больше по душе)

Спустя 23 минуты, 19 секунд (10.07.2011 - 14:44) igorianru написал(а):
рано обрадывался.. Invis1ble ваш вариант несовсем работает, он всегда "говорит"
// такой ip есть...



Спустя 3 минуты, 11 секунд igorianru написал(а):
а всё, сделал. мой косяк был.

Спустя 38 минут, 16 секунд (10.07.2011 - 15:23) Invis1ble написал(а):
Цитата
рано обрадывался..Invis1ble ваш вариант несовсем работает, он всегда "говорит"
// такой ip есть...

да, я по-видимому ошибся с проверочкой
$res = mysql_query("SELECT COUNT(*) FROM `table` WHERE `ip` RLIKE '(^|,)" . preg_quote($ip) . "(,|$)'") or die(mysql_error());
if (mysql_result($res, 0)) {
// такой ip есть
}
else {
// ip не найден
}

но я думаю, это не важно. смысл в самом запросе :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.