Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zakres miedzy 2 ip w bazie mysq i wybieranie wyniku
Therronis
post 12.05.2004, 03:09:05
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2003
Skąd: New Jersey

Ostrzeżenie: (0%)
-----


witam

mam taka tabele

id - kluczyk ; )
ip_ - zakres od ktorego dane pastwo posiada ip
_ip - zakres do ktorego dane panstwo posiada ip
symbol - symbol panstwa
name - nazwa panstwa

w tym problem ze nie wiem jak zapytac mysql o wynik, kiedy mam ip np 221.12.14.13, ktory znajduje sie w wierszu powiedzmy id = 35 i jest w zakresie ip_ = "221.0.0.0", _ip = "221.12.191.255".

chce znajac tylko ip uzyskac id wiersza majacego potrzebne mi dane (chodzi o kraj) uzywajac ip_ i _ip... nie wiem jak, prosze o pomoc, jakakolwiek podpowiedz lub rozwiazanie mojego problemu.


--------------------
W jeden dzień siostry z losu się poczęły. Miłość i Śmierć.
Go to the top of the page
+Quote Post
Ludvik
post 12.05.2004, 08:38:15
Post #2





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hmmm...nie wiem jak to jest z pulami ip, ale skoro pierwsze 8 bitów będzie tylko się różniło w bazie, to możesz zapisać tylko je. czyli wpis do bazy - pole typu int i zapisujesz np. 221 - tak jak w przykładzie. Potem podany adres ip tylko rozkładasz na kawałki funkcją explode i porównujesz pierwszą część do wpisu w bazie. Wybierasz dane zapytaniem i tyle smile.gif Mam nadzieję, że dobrze cię zrozumiałem.
Go to the top of the page
+Quote Post
switch
post 12.05.2004, 14:30:39
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 19.08.2003

Ostrzeżenie: (0%)
-----


Jeżeli dla każdego kraju masz inny numer IP to go w ten sposób przypisz w bazie. Wtedy zadasz pytanie:
[sql:1:4c7098e4a4] ("SELECT kraj FROM tabela WHERE id='$wartosc_szukana'");[/sql:1:4c7098e4a4]
Albo :
[sql:1:4c7098e4a4]("SELECT kraj FROM tabela WHERE ip ='$szukana_wartosc' ");[/sql:1:4c7098e4a4]
Jeżeli zależności będziesz miał więcej to je dodaj do pytania stosując AND i zadając kolejną zależność.
Go to the top of the page
+Quote Post
Jojo
post 12.05.2004, 14:42:24
Post #4





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Możesz skorzystać z funkcji MySQL'a INET_ATON(). Przelicza ona adres IP na liczbę. Zapytanie mogłoby wyglądać tak:
[sql:1:b11d0bc052]SELECT symbol, name FROM tabela WHERE INET_ATON(ip_) <= INET_ATON( $ip ) AND INET_ATON(_ip) >= INET_ATON( $ip )[/sql:1:b11d0bc052]
(nie dam głowy, że od razu zadziała, bo pisałem to z głowy)


--------------------
Rozwój cywilizacji informatycznej to wyścig między programistami, którzy wytwarzają coraz łatwiejsze
programy użytkowe dla idiotów, a światem produkującym coraz lepszych gatunkowo idiotów.

Blog: Małolepszy.info
Go to the top of the page
+Quote Post
BzikOS
post 12.05.2004, 14:45:12
Post #5





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


php => Bazy danych
Go to the top of the page
+Quote Post
Therronis
post 13.05.2004, 21:55:22
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 9.04.2003
Skąd: New Jersey

Ostrzeżenie: (0%)
-----


dzieki, zadzialalo : )


--------------------
W jeden dzień siostry z losu się poczęły. Miłość i Śmierć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 23:12