【发布时间】:2015-10-26 16:56:41
【问题描述】:
我有一个存放客户的数据库,我需要将它们显示在按州和市分组和排序的页面上。
如果我使用下面的代码,我会得到我想要的结果,但每个城市的州都是重复的。 如果我将 ORDER BY 更改为 GROUP BY,那么它只显示 1 个结果,该州有几个城市,我显然希望它们都列在相关州下。
欢迎任何帮助。
"SELECT state, city, company_name FROM mytable WHERE status='T' AND city <>'Head Office' AND company_name <>'my company' ORDER BY state ASC"
更多代码如下:
$coverage="";
$sql = "SELECT state, city, company_name FROM mutable WHERE status='T' AND city <>'Head Office' AND company_name <>'my company' GROUP BY state, city ORDER BY state ASC, city ASC";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$currentCity = NULL;
while($row = mysqli_fetch_assoc($result)) {
$id = $row["id"];
$state =$row["state"];
$office = $row["city"];
$agent = $row["company_name"];
if($row["city"] !== $currentCity) {
$currentCity = $row["city"];
$coverage .= '
<div id="stateCoverage" class="fluid ">
<p><strong class="white">' . $state . '</strong></p>
</div>
<div id="officeCoverage" class="fluid ">
<h3>' . $office . '</h3>
</div>
';
}
$coverage .= '
<div id="imageCoverage" class="fluid ">
<img src="http://foo/bar/logos/' . $agent . '.jpg" alt="' . $agent . '">
</div>
';
}
}else{
$coverage="<p>There seems to have been a problem locating your content, please try again, if the problem persists we would be grateful if you reported it to us, Thank you.</p>";
}
【问题讨论】:
-
您的查询很好。您要实现的是表示层的任务,而不是 SQL。