php从数组中打印更多结果并将其分组
我有一个无法解决的问题 假设我在mysql中有这样一个表:php从数组中打印更多结果并将其分组,php,mysql,Php,Mysql,我有一个无法解决的问题 假设我在mysql中有这样一个表: id | name | city ---|---------|--------- 1 | En | Madrid 2 | Nicole | Paris 3 | Robin | London 4 | Wayne | Paris 5 | John | Madrid 6 | Frank | Madrid 我想在一个分区中列出一个城市的所有名称,我想对所有城市都这样
id | name | city
---|---------|---------
1 | En | Madrid
2 | Nicole | Paris
3 | Robin | London
4 | Wayne | Paris
5 | John | Madrid
6 | Frank | Madrid
我想在一个分区中列出一个城市的所有名称,我想对所有城市都这样做
示例:
恩,约翰,弗兰克妮可,韦恩
罗宾
所有这些行都在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>";
}
$result=mysql\u查询(“从表名称中选择*);
$count=mysql\u num\u行($result);
$i=0;
对于($i=0;$i解决方案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>';
$result=mysql\u查询(“按城市从表中选择*名称顺序”);
$count=mysql\u num\u行($result);
$i=0;
$city='';
对于($i=0;$i)您需要多个查询并嵌套for循环。第一个查询用于获取唯一的城市(使用DISTINCT子句)。第二个查询用于获取该城市中所有名称的列表。当您迭代第二个查询的结果时,您可以创建div。您可以执行组\u concat查询-选择组\u concat(名称)作为名称,按城市分组的表中的城市
根据肖恩的建议,我只得到了城市,而使用Maximus2012,我无论如何都无法管理。现在我用谷歌搜索它以了解这些功能。就是这样。非常感谢。主题可以关闭:)
$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>';
}