Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Структура информационной базы для GEO-скриптов
Страны
Здесь можно посмотреть страны, входящие в базу данных. При выборе страны, вы увидите области, штаты, провинции, регионы, районы и города.
CREATE TABLE `pb_country` (
`name` varchar(64) NOT NULL,
`fullname` varchar(256) NOT NULL DEFAULT '',
`english` varchar(64) NOT NULL DEFAULT '',
`id` char(2) NOT NULL,
`country_code3` char(3) NOT NULL DEFAULT '',
`iso` char(3) NOT NULL DEFAULT '',
`telcod` char(4) NOT NULL DEFAULT '',
`telcod_len` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'длина номера телефона',
`location` char(10) DEFAULT '',
`capital` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Столица',
`mcc` int(3) NOT NULL DEFAULT '0' COMMENT 'Код страны телефонных операторов',
`lang` varchar(64) NOT NULL DEFAULT '' COMMENT 'Основной язык',
`langcod` varchar(12) NOT NULL DEFAULT '' COMMENT 'коды языков через ,',
UNIQUE KEY `name` (`name`),
UNIQUE KEY `id` (`id`)
)
Регионы, области
capital - ссылка на город, областной центр
CREATE TABLE `pb_area` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`okrug` varchar(64) NOT NULL DEFAULT '',
`autocod` varchar(128) NOT NULL DEFAULT '',
`capital` int(10) unsigned NOT NULL DEFAULT '0',
`english` varchar(64) NOT NULL DEFAULT '',
`iso` varchar(3) NOT NULL DEFAULT '',
`country` char(2) NOT NULL,
`vid` int(3) NOT NULL DEFAULT '0' COMMENT 'регион/область/и т.д.',
`wiki` varchar(1024) DEFAULT NULL COMMENT 'ссылка на wikipedia без https://',
PRIMARY KEY (`id`),
KEY `country` (`country`)
)
Районы области
Районы области в которые входят города
CREATE TABLE `pb_rajon` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`area` int(10) unsigned NOT NULL,
`country` char(2) NOT NULL,
`capital` int(10) unsigned NOT NULL DEFAULT '0',
`english` varchar(64) NOT NULL DEFAULT '',
`vid` int(3) NOT NULL DEFAULT '0' COMMENT 'регион/область/и т.д.',
`parent` int(11) NOT NULL DEFAULT '0' COMMENT 'родительский район для подрайона',
`iso` varchar(5) NOT NULL DEFAULT '',
`wiki` varchar(1024) DEFAULT NULL COMMENT 'ссылка на wikipedia без https://',
PRIMARY KEY (`id`)
)
Города
Возможно в стране нет областей и наличие городов не привязанных к области.
level:
0-очень маленький или неклассифицированный населенный пункт
1-Областной центр или город с населением более 1 млн.человек
2-Районный центр или город с населением более 100 тыс.человек
3-Город с населением более 15 тыс.человек
4-Деревня/станица/хутор с населением менее 15 тыс.человек
CREATE TABLE `pb_city` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`area` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'область',
`telcod` varchar(256) NOT NULL DEFAULT '',
`latitude` float DEFAULT NULL COMMENT 'широта',
`longitude` float DEFAULT NULL COMMENT 'долгота',
`time_zone` float DEFAULT NULL COMMENT 'Время относительно UTC(GMT)',
`tz` varchar(64) CHARACTER SET ascii NOT NULL DEFAULT '' COMMENT 'название временной зоны',
`english` varchar(64) NOT NULL DEFAULT '',
`rajon` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'район области',
`sub_rajon` int(11) NOT NULL DEFAULT '0' COMMENT 'подрайон в райне',
`country` char(2) NOT NULL,
`sound` char(4) NOT NULL DEFAULT '',
`level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1-столица Округа, 2-крупный город, 3-небольшой населенный пункт',
`iso` varchar(3) NOT NULL DEFAULT '',
`vid` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '1-город, 2-поселок, 3-село, 4-деревня, 5-станица, 6-хутор',
`post` varchar(512) NOT NULL DEFAULT '' COMMENT 'Почтовый код',
`geonameid` int(10) unsigned DEFAULT NULL,
`wiki` varchar(1024) DEFAULT NULL COMMENT 'ссылка на wikipedia без https://',
PRIMARY KEY (`id`),
UNIQUE KEY `geonameid` (`geonameid`),
KEY `sound` (`sound`),
KEY `area` (`area`),
KEY `telcod` (`telcod`),
KEY `post` (`post`(333)),
KEY `country` (`country`),
KEY `rajon` (`rajon`),
KEY `sub_rajon` (`sub_rajon`),
KEY `wiki` (`wiki`(333)),
KEY `latitude` (`latitude`,`longitude`)
)
Районы крупных городов
CREATE TABLE `pb_rajon_city` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`city` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Город',
`english` varchar(64) NOT NULL DEFAULT '',
`parent` int(10) unsigned NOT NULL DEFAULT '0',
`polygon` text,
PRIMARY KEY (`id`),
UNIQUE KEY `city_2` (`city`,`name`),
KEY `city` (`city`)
)
Телефонные коды
Список телефонных кодов
Eсли city пустой, то код для всего региона.
Все коды сотовых операторов добавлены в city с кодом области = 0
CREATE TABLE `pb_telcod` (
`okrug` int(10) NOT NULL COMMENT 'Код региона',
`city` int(10) unsigned NOT NULL COMMENT 'Код города',
`oper` int(10) unsigned NOT NULL COMMENT 'Код оператора',
`deffrom` varchar(15) NOT NULL,
`defto` varchar(15) NOT NULL,
`country` char(2) NOT NULL,
`mnc` int(3) NOT NULL DEFAULT '0',
`route` char(5) NOT NULL DEFAULT '' COMMENT 'маршрут',
UNIQUE KEY `deffrom` (`deffrom`) USING BTREE,
KEY `oper` (`oper`),
KEY `defto` (`defto`)
)
Телефонные операторы
CREATE TABLE `pb_oper` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(512) NOT NULL,
`mobile` tinyint(3) unsigned NOT NULL DEFAULT '0',
`mvno` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Виртуальный оператор',
`country` char(2) NOT NULL,
`mnc` int(4) unsigned NOT NULL DEFAULT '0',
`brand` varchar(64) NOT NULL DEFAULT '',
`url` varchar(128) NOT NULL DEFAULT '' COMMENT 'сайт оператора',
`deleted` timestamp NULL DEFAULT NULL COMMENT 'дата удаления',
`inn` bigint(20) NOT NULL DEFAULT '0' COMMENT 'ИНН ',
PRIMARY KEY (`id`),
KEY `country_mnc` (`country`,`mnc`),
KEY `country_inn` (`country`,`inn`) USING BTREE
)
IP - диапазоны
Соответствие IP и страны/города
CREATE TABLE `pb_geo__base` (
`long_ip1` bigint(20) NOT NULL,
`long_ip2` bigint(20) NOT NULL,
`country` char(2) NOT NULL,
`city` varchar(64) NOT NULL,
`upd` datetime NOT NULL COMMENT 'актуальность',
`oper` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Оператор сотовой связи',
UNIQUE KEY `INDEX` (`long_ip1`,`long_ip2`)
)
IP - диапазоны
CREATE TABLE `pb_geo__ip` (
`long_ip1` bigint(20) NOT NULL,
`long_ip2` bigint(20) NOT NULL,
`whois` text NOT NULL,
`upd` datetime NOT NULL COMMENT 'актуальность',
UNIQUE KEY `long_ip1` (`long_ip1`)
)
Языки
CREATE TABLE `pb_lang` (
`id` int(11) NOT NULL COMMENT 'Цифровой код',
`name` varchar(64) NOT NULL,
`english` varchar(64) NOT NULL,
`iso1` char(2) NOT NULL,
`iso2` varchar(32) NOT NULL,
`iso3` char(3) NOT NULL,
`gost` char(3) NOT NULL,
PRIMARY KEY (`id`)
)
Синонимы
CREATE TABLE `pb_sinonim` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`sinonim` varchar(512) CHARACTER SET utf8mb4 NOT NULL,
`tbl` varchar(64) NOT NULL DEFAULT '',
`lang` int(11) NOT NULL DEFAULT '0' COMMENT 'язык',
`tbl_id` int(11) NOT NULL DEFAULT '0' COMMENT 'id в таблице при переименовании',
PRIMARY KEY (`id`),
KEY `name` (`name`),
KEY `tbl` (`tbl`,`tbl_id`,`name`),
KEY `sinonim` (`sinonim`(128)) USING BTREE
)
Подключение к базе, общие PHP-функции работы с MySql-базой
config.php
define("db_prefix","pb_"); // префикс всех БД
define("DBName","htmlwebru"); // Имя базы данных (в данном случае надо менять значение "test")
define("HostName","localhost"); // Имя сервера (хост)
define("UserName","root"); // Логин
define("Password",""); // Пароль
@ini_set(magic_quotes_sybase,0); // одиночная кавычка ескапируется обратным слешем
if(!function_exists('sql')){
function add_sqlerror($err) {
global $link;
if (!headers_sent())header("HTTP/1.0 503 Service Unavailable");
$err=date("d.m.Y H:i")."
".$err."
info:".@mysqli_info($link)."
error:". @mysqli_error($link)."
"; //."
Процессы:";
//AddToLog(str_replace("
", "<br>
", $err), 'SQL error report');
die( "<b>Произошла ошибка SQL.</b> Администратор оповещен!
<!--".$err.'-->');
}
function sql($query) {
global $link;
$res=mysqli_query ($link, $query );
if(!$res)add_sqlerror("Запрос:
".$query."
");
return $res;
}
function GetName($tbl, $id){
$query=sql('SELECT name FROM '.db_prefix.$tbl.' WHERE id="'.$id.'" LIMIT 1');
return (($data = mysqli_fetch_assoc($query)) ? $data['name'] : '' );
}
function SendAdminMail($Subj, $Body, $from=''){ // отправка сообщения всем операторам и админам
if(empty($from)){
$from="From: <noreply@".preg_replace("/www\./i","",$_SERVER['SERVER_NAME']).">
Content-Type: text/html; charset=utf-8";
$Body="<html><body>".$Body."</body></html>";}
return mail(AdminMail, $Subj, $Body, $from);
}
function _USER_SetLocaleRus()
{
$arrLocales = array('ru_RU.CP1251', 'ru_RU.cp1251', 'ru_RU', 'RU');
foreach ($arrLocales as $strLocaleName)
{setlocale(LC_ALL, $strLocaleName);
if (strtolower("qwertyёЁАБГДЯQWERTYZ") == "qwertyёёабгдяqwertyz") break;
}
}
}
_USER_SetLocaleRus();
if (!@mysqli_connect(HostName,UserName,Password)){
usleep(500000); // 0.5 сек
$link=mysqli_connect($link, HostName,UserName,Password) or add_sqlerror("Невозможно подключение к MySQL: ".HostName);
}
if (!mysqli_select_db($link, DBName)){
usleep(500000); // 0.5 сек
mysqli_select_db($link, DBName) or add_sqlerror("Невозможно открыть: ".DBName);
}
Скачать базу данных стран и городов со всеми таблицами.
Смотрите также:
Все географические сервисы и скрипты.
.
Прокомментировать/Отблагодарить