Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov
Печать дерева городов.
Пример формирует дерево городов на 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>';
}
Результат выполнения данного скрипта:
Базу данных можно взять здесь.