我有一个问题无法解决。
假设我在mysql中有一个这样的表:
id | name | city
---|---------|---------
1 | En | Madrid
2 | Nicole | Paris
3 | Robin | London
4 | Wayne | Paris
5 | John | Madrid
6 | Frank | Madrid
我想在一个div中列出一个城市的所有名称,我想为所有城市这样做。
示例:
恩,约翰,弗兰克
妮可,韦恩
Robin
所有这些行都在div中,从下到下。在这个特殊的例子中,结果是3个div。我只写了特定div中的每个名称,其中6个。我是这样做的:
$result = mysql_query("SELECT * FROM table_name");
$count=mysql_num_rows($result);
$i=0;
for($i=0;$i<=$count-1;$i++)
{
$row=mysql_fetch_array( $result );
echo "<div>$row[name]</div>";
}
有人能帮我吗?
解决方案1
$result = mysql_query("SELECT * FROM table_name ORDER BY city");
$count=mysql_num_rows($result);
$i=0;
$city = '';
for($i=0;$i<=$count-1;$i++) {
$row=mysql_fetch_array( $result );
if ($city == '' ) {
echo "<div>";
} elseif ($city<>$row['city']) {
echo "</div><div>";
}
$city = $row['city']
echo $row['name'].'  ';
}
if ($city<>'') echo '</div>';
解决方案2
$result = mysql_query("SELECT GROUP_CONCAT(name) as name_list, city FROM table_name GROUP BY city");
$count=mysql_num_rows($result);
$i=0;
$city = '';
for($i=0;$i<=$count-1;$i++) {
$row=mysql_fetch_array( $result );
echo '<div>'.$row['name_list'].'</div>';
}