我有一个我无法解决的问题。
让我们说我在mysql中有一个像这样的表:
id | name | city
---|---------|---------
1 | En | Madrid
2 | Nicole | Paris
3 | Robin | London
4 | Wayne | Paris
5 | John | Madrid
6 | Frank | Madrid
我想在一个div中列出一个城市的所有名称,我想为所有城市都这样做。
示例:
恩,约翰,弗兰克 妮可,韦恩所有这些行都在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>";
}
任何人都可以帮助我吗?
答案 0 :(得分:2)
解决方案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>';
}