-2

MySQLデータベースを持っています

id      area_name       area_district   area_shire
1       Harborne        Birmingham      West Midlands
2       Edgbaston       Birmingham      West Midlands
3       Halesowen       Dudley          West Midlands
4       Rugby                           Warwickshire   
5       Nuneaton                        Warwickshire

これを表示するにはどうすればよいですか、

West Midlands (main heading)

Birmingham (sub heading)

    Harborne 
    Edgbaston

Dudley (sub heading)

Halesowen

Warwickshire (main heading)

Rugby 
Nuneaton  

これを実現できる単一のwhileループはありますか?

編集:これは私がこれまでに試したことです:

$query = mysql_query("SELECT * FROM Areas_Covered ORDER BY ID"); //fetch the results

// convert results into an array
while($rows = mysql_fetch_array($query)):
    $area_name = $rows ['area_name'];
    $area_district = $rows ['area_district'];
    $area_name_url = str_replace(' ', '_', $area_name);
    echo "<a href=\"Driveway_Cleaning_$area_name_url.php\">$area_name</a><br>";
endwhile;
4

1 に答える 1

0

最初にデータを「正規化」したいかもしれませんが、それは別の問題です。

行を反復して変更を確認します。私は次のようなことをします:

$area_shire = '';
$area_district = '';
$area_name = '';

while($rows = mysql_fetch_array($query)):

    if($rows['area_shire'] != $area_shire) {

        echo '<h1>'.$rows['area_shire'].'</h1>';
        $area_shire = $rows['area_shire'];
    }

    /* do the same for district using h2 and name using h3 */

endwhile;
于 2012-12-05T22:11:21.803 に答える