Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Печать дерева городов
Пример формирует дерево городов на PHP. Данный пример позволяет на PHP сформировать список стран, областей, городов в виде дерева
$sql = 'SELECT country.id AS country_id,
country.name AS country_name,
city.id AS city_id,
city.name AS city_name,
area.name AS region_name,
area.id as region_id
FROM `pb_country` AS country
LEFT JOIN `pb_area` AS area ON area.country=country.id
LEFT JOIN `pb_city` AS city ON area.id=city.area
WHERE country.id in ("UA","BY") LIMIT 1000';
// уберите последнюю строчку в предыдущем запросе для вывода всех городов во всех странах
// подключаемся к базе данных
$connection = mysql_connect( 'localhost', 'root', '' );
mysql_select_db( 'world', $connection );
mysql_set_charset( 'utf8' );
$query = mysql_query( $sql, $connection );
$data = []; // формируем массив
while ( $row = mysql_fetch_assoc( $query ) ) {
$data[$row['country_id']][$row['country_name']][$row['region_name']][$row['city_id']] = $row['city_name'];
}
// начинаем выводить полученную структуру
$data = [];
if($query){
while ( $row = mysql_fetch_assoc( $query ) ) {
$data[$row['country_id']][$row['country_name']][$row['region_name']][$row['city_id']] = $row['city_name'];
}
echo '<ul>';
foreach ( $data as $country_id=>$country ) {
echo '<li>';
foreach ( $country as $country_name => $region ) {
echo '<b>'.$country_name.'</b><ul>';
foreach ( $region as $region_name => $city ) {
echo '<li>', $region_name, '<ul>';
$max=10;
foreach ( $city as $city_id=>$city_name ) {
echo '<li><a href="/geo/country/'.$country_id.'/city/'.$city_id.'">'. $city_name. '</a></li>';
if($max--<1){echo '<li> и другие...</li>';break;}
}
echo '</ul></li>';
}
echo '</ul></li>';
}
echo '</li>';
}
echo '</ul>';
}
Результат выполнения данного скрипта:
[cache]
[/cache]
Базу данных можно взять здесь
.
Прокомментировать/Отблагодарить