0

我有一个小问题。我在数据库中有两个表:

[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_orPDO代替。

于 2012-11-29T22:01:01.220 回答