Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php从数组中打印更多结果并将其分组_Php_Mysql - Fatal编程技术网

php从数组中打印更多结果并将其分组

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 我想在一个分区中列出一个城市的所有名称,我想对所有城市都这样

我有一个无法解决的问题

假设我在mysql中有这样一个表:

 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'].' &nbsp';
} 

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>';
}