[英]Display a list of cities and the names of the locations in those cities
我的數據庫看起來像這樣...
身份證,城市,名字
1,阿霍,腹畝
2,高山,高山村
3,阿帕奇路口,失落的荷蘭人
4,阿帕奇路口,黃油田
5,阿帕奇路口,本森
6,比斯比,女王礦
... 等等
我正在嘗試將列表顯示為...
<section>
<h1>ajo</h1>
<h2>belly acres</h2>
</section>
<section>
<h1>alpine</h1>
<h2>alpine village</h2>
</section>
<section>
<h1>apache junction</h1>
<h2>lost dutchman</h2>
<h2>butterfield</h2>
<h2>benson</h2>
</section>
<section>
<h1>bisbee</h1>
<h2>queen mine</h2>
</section>
我當前使用的代碼對於只有一個名稱的城市來說效果很好,但是在具有多個名稱的Apache Junction的示例中,我得到了。
<section>
<h1>apache junction</h1>
</section>
<h2>lost dutchman</h2>
<h2>butterfield</h2>
<h2>benson</h2>
<section>
<h1>bisbee</h1>
<h2>queen mine</h2>
</section>
我想在一節中顯示Apache交界處的所有位置名稱。 這是我正在使用的代碼...
$previousLevel = "";
$city_query = $wpdb->get_results( $wpdb->prepare("SELECT name, city FROM locations") );
foreach ($city_query as $city_list) {
$city = $city_list->city;
$name = $city_list->name;
if ($city != $previousLevel) {
$dump_list .= '<section><h1>' . $city . '</h1>';
$dump_list_end = '</section>';
}
$dump_list .= '<h2><a href="#">' . $name . '</a></h2>';
$dump_list .= $dump_list_end;
$previousLevel = $city;
}
任何幫助,將不勝感激。
您可以嘗試一下此修改后的代碼嗎?
$previousLevel = "";
$city_query = $wpdb->get_results( $wpdb->prepare("SELECT name, city FROM locations") );
foreach ($city_query as $city_list) {
$city = $city_list->city;
$name = $city_list->name;
if ($city != $previousLevel) {
if ($previousLevel != "") {
$dump_list .= '</section>';
}
$dump_list .= '<section><h1>' . $city . '</h1>';
$previousLevel = $city;
}
$dump_list .= '<h2><a href="#">' . $name . '</a></h2>';
}
修改后的代碼,更長,但更易於理解,並帶有適當的數據轉義:
$city_query = $wpdb->get_results( $wpdb->prepare("SELECT name, city FROM locations ORDER BY city, name") );
$cities = array();
foreach ($city_query as $city_list) {
if (!isset($cities[$city_list->city])) {
$cities[$city_list->city] = array();
}
$cities[$city_list->city][] = $city_list->name;
}
$dump_list = '';
foreach ($cities as $city => $names) {
$dump_list .= '<section><h1>' . htmlspecialchars($city) . '</h1><h2>';
$dump_list .= implode('</h2><h2>', array_map('htmlspecialchars', $names));
$dump_list .= '</section>';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.