![]() |
![]() ![]() |
![]() |
![]()
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ć.
|
|
|
![]()
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
![]() |
|
|
![]()
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ść. |
|
|
![]()
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 |
|
|
![]()
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
|
|
|
![]()
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ć.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 23:12 |