2013-06-11 3 views
0

У меня есть таблица под названием Blocks который выглядит следующим образом:Правильный способ для выполнения этой команды

| startIpNum | endIPNum | locId | 
| int(11) | int(11) | int(11) | 

достаточно просто сейчас. Как вы уже догадались, это список диапазонов IP. Я использую его для геолокации. Теперь я получаю $_SERVER['REMOTE_ADDR'] и преобразовать его в целое число, и я пытаюсь найти диапазон значение падает между использованием этого запроса

"SELECT * FROM `Blocks` WHERE startIPNum >= '$ip_addr' AND endIPNum <= '$ip_addr' " 

где $ip_addr является целым числом форм REMOTE_ADDR. Теперь проблема заключается в том, что запрос возвращает пустой результат как в моем PHP, так и в MySQL в phpMyAdmin, хотя я знаю, что в таблице есть строка, в которой находится IP-номер, поскольку мой IP-номер равен 1677352691, а строка в таблице -

| startIpNum | endIPNum | locId | 
1677351936 | 1677354111 | 12431 

Итак, мой вывод состоит в том, что мой запрос сформирован неправильно. Итак, как правильно запросить таблицу для получения желаемого результата?

ответ

2

Вы даете неправильные условия,

SELECT * FROM `Blocks` 
WHERE startIPNum <= $ip_addr 
AND endIPNum >= $ip_addr 
+0

спасибо ... полная глупость – brendosthoughts

+0

Рад помогите вам :) – Rikesh

+0

еще раз спасибо, мне явно нужно немного спать, или больше кофе – brendosthoughts

1

Попробуйте это без кавычек, так как они имеют int типа, и дайте мне знать дело тогда -

Edit-

Котировки обыкновению важно в случае, реверанс peterm

SELECT * 
FROM `Blocks` 
WHERE startIPNum <= $ip_addr AND endIPNum >= $ip_addr " 

Вы также можете использовать BETWEEN, например

еще одна вещь, которую вы устанавливаете $ip_addr в обоих согласующего случае

SELECT * 
FROM `Blocks` 
WHERE $ip_addr BETWEEN startIPNum AND endIPNum " 
+0

не повезло с этим ... Я также попытался 'SELECT * FROM' Blocks' WHERE startIPNum> = 1677352691 И endIPNum < = 1677352691' в phpmyadmin с пустым результатом вернулись, я попробую 'BEETWEEN' сейчас – brendosthoughts

+0

FYI котировки не будут иметь значения – peterm

+0

@peterm thx для информации..i обновит ответ, затем – swapnesh

Смежные вопросы