我有一个小问题。我在数据库中有两个表:
[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>
我怎么能这样做?请帮帮我......谢谢!
答案 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
代替。