HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Подскажите как в Mysql. Сделать поиск по диапозону.
  #1  
Старый 26.11.2008, 19:07
троль909
Новичок
Регистрация: 12.09.2008
Сообщений: 25
С нами: 9294964

Репутация: 63
По умолчанию Подскажите как в Mysql. Сделать поиск по диапозону.

Подскажите как в Mysql. Сделать поиск по диапозону.

У меня есть база Ip адресов. по диапозонам.
записаны они в 3 столбика. где 1 столбик начало диапозона 2 конец диапозона.
но я не могу понять как сделать запрос который делал поиск примерно по такой схеме 1 столбик<значение<2 столбик.
 
Ответить с цитированием

  #2  
Старый 26.11.2008, 19:46
FeoЩту
Познающий
Регистрация: 13.11.2008
Сообщений: 31
С нами: 9206910

Репутация: 14
По умолчанию

$temp = '255.255.';
...
$sql = 'SELECT * FROM ip_table WHERE ip LIKE "'.$temp.'%"
...

Выдаст тебе все адреса, начинающиеся на 255.255.
 
Ответить с цитированием

  #3  
Старый 26.11.2008, 20:01
kolpeex
Новичок
Регистрация: 17.02.2008
Сообщений: 26
С нами: 9594727

Репутация: 39
По умолчанию

Все просто. Поля диапозонов должны быть числами, т.е. ip в формате longip. Это IP записанный в бинарном формате. Т.е. четыре байта abcd. В общем, по лонгайпи погугли.
Далее просто конвертишь адрес в целое и ищешь по БД типа:
$ip = 0x79000001;
select * from `ips` where `ip_from` <= $ip and `ip_to` >=$ip

Может не так объяснил, но, думаю, смысл ясен.
 
Ответить с цитированием

  #4  
Старый 27.11.2008, 00:11
j0ker13
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
С нами: 9361870

Репутация: 58
По умолчанию

если это для определения страны то легче выдрать все это из админки напрмер связки armitage ))
 
Ответить с цитированием

  #5  
Старый 27.11.2008, 01:57
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

.... where val >= v1 AND val <=v2
либо
.... where val between v1 AND v2
 
Ответить с цитированием

  #6  
Старый 27.11.2008, 09:18
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

для диапазона IP-адресов, возможно, будет лучше применять INET_ATON для границ диапазона для преобразования ипов в целочисленное представление
 
Ответить с цитированием

  #7  
Старый 27.11.2008, 11:01
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

krypt3r как я понял - там они и так уже представлены в таком виде
 
Ответить с цитированием

  #8  
Старый 27.11.2008, 14:52
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

Не, это я писал, если вдруг ипы в поле типа varchar хранятся)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.