Autor | Zpráva | ||
---|---|---|---|
Radicz Profil * |
#1 · Zasláno: 5. 12. 2008, 12:37:02
Zdravim všechny a prosim o pomoc. V databázi mam IP sítí např. xx.xx.xx.16. Mam ukol je, že mam ip adresu xx.xx.xx.70. A mam najít síť v databázi která je nejblíže k tomu IP zadanému. Myslel jsem že udělam dotaz že hledam IP které by bylo menší a zároveň větší než IP aleee to ki nefunguje prosim o pomoc.
<?php require ("sql.inc.php"); $adresa = "xx.xx.xx.70"; function ip($ip) { $pole = explode(".", $ip); $ipcko = $pole[3]; $dotaz = mysql_query ("SELECT SUBSTRING_INDEX(ip, '.', '-1') AS ip_made FROM ip_rozsahy WHERE ip_made > $pole[3] AND ip_made < $pole[3]"); while($vysledek = mysql_fetch_array($dotaz)) { echo $vysledek['ip_made']; } } echo ip($adresa); ?> |
||
bohyn Profil |
#2 · Zasláno: 5. 12. 2008, 18:14:05 · Upravil/a: bohyn
Takhle nejak by to snad slo pres MySQL. ORDER BY by se muselo menit podle toho jestli je hledana IP vetsi nebo mensi nez vychozi.
$ip1 = "mensi_ip" $ip2 = "vetsi_ip"; $query = "SELECT ip FROM ip_rozsahy WHERE strcmp(ip, '".$ip1."') = 1 AND strcmp(ip, '".$ip2."') = -1 ORDER BY ip DESC LIMIT 1"; Ja ukladani IP resim tak, ze je ukladam jako INT a pak je otazka trivialniho dotazu najit hledanou IP nebo rozsah. Je to rychlejsi nez hledat string a jeste usetris par bytu na radek. |
||
Radicz Profil * |
#3 · Zasláno: 5. 12. 2008, 22:56:52
Díky za radu ale $ip1 a $ip2 neznam....Mohl by mi prosim někdo poradit jak mam udělat to aby mi z čísel v databázi vybral vždy jen to nejbližší tomu hledanému ? děkuji.
|
||
Časová prodleva: 16 let
|
0