Регистрация Войти
Войти через VK




Поиск по сайту



PHP Поиск



Структура информационой базы для GEO-скриптов

Страны

Здесь можно посмотреть страны, входящие в базу данных. При выборе страны, вы увидите области, штаты, провинции, регионы, районы и города.

CREATE TABLE `pb_country` (
  `name` varchar(64) NOT NULL,
  `fullname` varchar(256) NOT NULL,
  `english` varchar(64) NOT NULL,
  `id` char(2) NOT NULL,
  `country_code3` char(3) NOT NULL,
  `iso` char(3) NOT NULL,
  `telcod` char(4) NOT NULL,
  `location` char(10) DEFAULT '',
  `capital` int(10) unsigned NOT NULL,
  `mcc` int(3) NOT NULL DEFAULT '0' COMMENT 'Код страны телефонных операторов',
  `lang` varchar(64) NOT NULL,
  UNIQUE KEY `name` (`name`),
  UNIQUE KEY `country_code2` (`id`),
  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,
  `autocod` varchar(21) NOT NULL,
  `capital` int(10) unsigned NOT NULL,
  `english` varchar(64) NOT NULL,
  `iso` varchar(3) NOT NULL,
  `country` char(2) NOT NULL,
  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,
  `english` varchar(64) NOT NULL,
  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 COMMENT 'область',
  `telcod` varchar(24) NOT NULL,
  `latitude` float DEFAULT NULL COMMENT 'широта',
  `longitude` float DEFAULT NULL COMMENT 'долгота',
  `time_zone` float DEFAULT NULL COMMENT 'Время относительно UTC(GMT)',
  `english` varchar(64) NOT NULL,
  `rajon` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'район области',
  `country` char(2) NOT NULL,
  `sound` char(4) NOT NULL,
  `level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1-столица Округа, 2-крупный город, 3-небольшой населенный пункт',
  `iso` varchar(3) NOT NULL,
  `vid` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '1-город, 2-поселок, 3-село, 4-деревня, 5-станица, 6-хутор',
  `post` varchar(32) NOT NULL,
  `geonameid` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `geonameid` (`geonameid`),
  KEY `sound` (`sound`),
  KEY `area` (`area`),
  KEY `telcod` (`telcod`),
  KEY `post` (`post`),
  KEY `country` (`country`)
) 

Районы крупных городов

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,
  `parent` int(10) unsigned NOT NULL DEFAULT '0',
  `polygon` text NOT NULL,
  PRIMARY KEY (`id`),
  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(11) NOT NULL,
  `defto` varchar(11) NOT NULL,
  `country` char(2) NOT NULL,
  UNIQUE KEY `country` (`country`,`deffrom`)
) 

Телефонные операторы

CREATE TABLE `pb_oper` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `mobile` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `country` char(2) NOT NULL,
  `mnc` int(3) unsigned NOT NULL DEFAULT '0',
  `brand` varchar(64) NOT NULL,
  PRIMARY KEY (`id`)
) 

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 'актуальность',
  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`)
) 


Подключение к базе, общие 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")."\n".$err."\ninfo:".@mysqli_info($link)."\nerror:". @mysqli_error($link)."\n\n";    //."\n\nПроцессы:";
    //AddToLog(str_replace("\n", "<br>\n", $err), 'SQL error report');
    die( "<b>Произошла ошибка SQL.</b> Администратор оповещен!\n<!--".$err.'-->');
}
function sql($query) {
    global $link;
    $res=mysqli_query ($link, $query );
    if(!$res)add_sqlerror("Запрос:\n".$query."\n");
    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']).">\nContent-Type: text/html; charset=windows-1251";
    $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);
}

Скачать базу данных стран и городов со всеми таблицами.

Смотрите также:
Все географические сервисы и скрипты.


.

Популярное:


Содержание:


Новое за неделю



Сейчас на сайте: 2421
Rambler's Top100