MySQL,PHP内连接并在不同的表html中显示结果

时间:2012-11-29 21:56:24

标签: mysql sql

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

[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>

我怎么能这样做?请帮帮我......谢谢!

1 个答案:

答案 0 :(得分: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_功能being deprecated并使用mysqli_PDO代替。