Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Топ: Небольшие вопросы по MySQL
Сообщения
Fashion

во-во. хреново спарсил  пересмотри свой парсер
// очисти таблу и пиши хороший парсер


__________
посл.ред. 22 Дек 2010, 12:32; всего 1 раз 22 Дек 2010, 12:31
Fashion

у меня с логофона 893 уникальных диапазона

22 Дек 2010, 12:33
ofroke

id oper min max data
91 21 1358598144 1358600191 1258790825
92 21 1358598144 1358602239 1258790825

база логофона)

тут хз как быть
я при добавлении проверяю диапазоны min and max
===
у меня 912

22 Дек 2010, 12:33
Fashion

ofroke, выкладывай скрипт

22 Дек 2010, 12:34
ofroke

foreach($opsos->range as $range) {

if(!$db->result("select count(`id`) from `#_base_ip` where `min` = '".real($range['ip1'])."' and `max` = '".real($range['ip2'])."' limit 1;")) {
$db->query("insert into `#_base_ip` set `min` = '".real($range['ip1'])."', `max` = '".real($range['ip2'])."', `data` = UNIX_TIMESTAMP();")
or die('Произошла ошибка при добавлении диапазона в базу.');

}

}

22 Дек 2010, 12:36
Fashion

О_0 у тя под 1-2 тыщи запросов получается? сдурел чтоль?

22 Дек 2010, 12:37
ofroke

это при обновлении базы)

22 Дек 2010, 12:38
Fashion

$sql->sql('SELECT min,max FROM `'.PRE.'ip`');
$ip_base=$ip_res=array();
while($m=$sql->fetch()){$ip_base[]=$m['min'];$ip_base[]=$m['max'];}

DATA::create();
$res=simplexml_load_string(DATA::http('http://www.logofon.ru/xml/ips.xml'));
foreach($res->operator as $oper){
foreach($oper->range as $ip){

if(!trim($oper['name']) or !trim($oper['country'])){continue;}

$ip=array(preg_replace('#\D#','',$ip['ip1']),preg_replace('#\D#','',$ip['ip2']));

if(!IS::ip(int2ip($ip[0])) or !IS::ip(int2ip($ip[1]))){continue;}
if(in_array($ip[0],$ip_base) or in_array($ip[1],$ip_base)){continue;}
$ip_base[]=$ip[0];
$ip_base[]=$ip[1];
$ip_res[]='('.$ip[0].','.$ip[1].",'".$sql->fsql($oper['name'])."','".$sql->fsql($oper['country'])."','".$sql->fsql($oper['tld'])."')";

}
}

if(!empty($ip_res)){$sql->sql('INSERT INTO `'.PRE.'ip` (min,max,oper,country,tld) VALUES '.implode(',',$ip_res));}


всего 2 запроса. под себя переделаешь сам)

22 Дек 2010, 12:40
ofroke

спасиб, чуть позже попробую)

22 Дек 2010, 12:44
Fashion

ofroke,
"from `#_logs`"
зачем диез тут?

22 Дек 2010, 12:44
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.