0

小さな問題があります。データベースに 2 つのテーブルがあります。

[place]                        [client]

id     country                 id     name     id_place
--------------                 ------------------------
1      Canada                  1      Mike     1
2      USA                     2      Susan    1
3      China                   3      Juan     3
                               4      Nelly    2
                               5      Kevin    3

SQL クエリを使用する:

SELECT 
    place.country, cliente.name 
FROM 
    place, client 
INNER JOIN 
    client ON place.id = client.id_place

そして、次を使用して結果を示します。

while ($list = mysql_fetch_array($query))
{
     echo $list['contry']." | ".$list['name'];
}

結果は次のとおりです。

Canada | Mike
Canada | Susan
USA    | Nelly
China  | Juan
China  | Kevin

ここまでは順調ですね。私の問題は、次のように結果を表示したいということです:

<h1> Canada: <h1>
<h3> -Mike <h3>
<h3> -Susan <h3>

<h1> USA: <h1>
<h3> -Nelly <h3>

<h1> China: <h1>
<h3> -Juan <h3>
<h3> -Kevin <h3>

どうすればこれを行うことができますか?助けてください...ありがとう!

4

1 に答える 1

1

これは機能するはずです:

$h1 = NULL;

while ( $list = mysql_fetch_array($query) ) {
    if($h1 <> $list['contry']) {
        echo "<h1>" . $list['contry'] . ":</h1>\n";

        $h1 = $list['country'];
    }

    echo "<h3>- " . $list['name'] . "</h3>\n";
}

$h1として初期化されNULLます。ループが開始すると、$h1がに等しいかどうかがチェックされ$list['country']ます。そうでない場合は、国のヘッダーを出力し、繰り返されないように同等に設定します。

mysql_また、関数は廃止されて使用されているためmysqli_、またはPDO代わりに使用を停止する必要があります。

于 2012-11-29T22:01:01.220 に答える