[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна БД стран/городов/регионов
Winston
Всем привет. У кого есть или может знает где скачать БД стран/городов/регионов на английском, на русском нашел, а вот на английском нет sad.gif



Спустя 13 минут, 45 секунд (13.07.2012 - 12:32) Placido написал(а):
http://www.maxmind.com/app/worldcities
Оговорюсь, сам не скачивал.

Спустя 1 час, 7 минут, 1 секунда (13.07.2012 - 13:39) Winston написал(а):
Placido
Видел уже и скачивал, но там txt sad.gif а мне нужен дамп БД.

Спустя 1 час, 31 минута, 53 секунды (13.07.2012 - 15:11) Placido написал(а):
Так есть LOAD DATA INFILE. Для этого:

1. Создаем таблицу (типы полей уже указаны на сайте)
2. Проставляем в файле id для всех строк.
3. Меняем ",," на ",\N,".
4. LOAD DATA INFILE
5. Профит!

Я сделал так (извиняюсь за говнокод - дела по-быстрому, да и файл большой - сразу сделать все замены не хватало выделенной памяти):

1.
CREATE TABLE `testcity` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`CountryCode` char(2) DEFAULT NULL,
`CityName1` varchar(100) DEFAULT NULL,
`CityName2` varchar(255) DEFAULT NULL,
`Region` char(2) DEFAULT NULL,
`Population` int(10) unsigned DEFAULT NULL,
`Latitude` float DEFAULT NULL,
`Longitude` float DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;



2.
$a = file('C:/.../worldcitiespop.txt', FILE_IGNORE_NEW_LINES);
$i = 1;
foreach ($a as $key => $value)
{
$a[$key] = $i . ',' . $value;
$i++;
}

file_put_contents('C:/.../worldcities_new.txt', implode(PHP_EOL, $a));

3. Прогнал через str_replace два раза, за один не хватало выделенной памяти.
$a = file_get_contents('C:/.../worldcities_new.txt');

file_put_contents('C:/.../worldcities_new.txt', str_replace(',,',',\N,', $a));

4. В консоли MySQL
LOAD DATA INFILE 'C:/.../worldcities_new.txt' 
INTO TABLE `testcity` CHARACTER SET CP1251
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';

5. Результат:
3173958 row(s) affected
Records: 3173958 Deleted: 0 Skipped: 0 Warnings: 0
;)

Спустя 3 часа, 13 минут, 39 секунд (13.07.2012 - 18:24) redreem написал(а):
Winston
давай почту - скину че есть.

Спустя 11 часов, 7 минут, 30 секунд (14.07.2012 - 05:32) Эли4ка написал(а):
Winston
я сейчас не смогла найти,но на Хабре было..там даже деревни есть..а зачем именно на английском? rolleyes.gif

Спустя 2 часа, 23 минуты, 18 секунд (14.07.2012 - 07:55) Winston написал(а):
Placido
Спасибо за объяснение, но в той базе нету регионов, а только коды стран и названия регионов.
Цитата (Эли4ка @ 14.07.2012 - 05:32)
а зачем именно на английском?

Для англо-версии сайта.

Проблема решена, спасибо redreem'у!

Спустя 58 минут, 47 секунд (14.07.2012 - 08:54) redreem написал(а):
Winston

кстати там встречаются в поле для английского названия - русские. ну это уж просто перепроверить надо. думаю таких записей не так много.

Спустя 1 день, 33 минуты, 22 секунды (15.07.2012 - 09:27) Эли4ка написал(а):
Цитата
Для англо-версии сайта

ну можно сделать русские названия городов оставить русскими,английские-английскими,французскими-французскими и т.д..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.