php - 使用 php 对查询进行分组

标签 php mysql

基本问题!

我有两张 table

制作

   +-----+--------------+  
   | id  |  fruit_name  |
   +--------------------+
   | 1   |   Apple      |
   | 2   |   Banana     |
   | 3   |   Carrot     |
   +-----+--------------+

品种

   +-----+---------------+----------------+
   | id  |  fk_fruit_id  |  variety_name  |
   +-----+---------------+----------------+
   | 1   |   1           |    Cox         |
   | 2   |   1           |    Braeburn    |
   | 3   |   2           |    Chester     |
   | 4   |   3           |    Kotaka      |
   | 5   |   3           |    Imperial    |
   | 6   |   3           |    Oneal       |
   +-----+---------------+----------------+

我想输出每个水果的品种列表,例如

APPLE - Cox, Braeburn

BANANA - Chester

CARROT - Kotaka, Imperial, Oneal

我现在的代码是

$query   = "SELECT * FROM produce, varieties WHERE produce.id = varieties.fk_fruit_id"; 

$result  = mysql_query($query) or die('Error : ' . mysql_error()); 
while ($row     = mysql_fetch_array($result, MYSQL_ASSOC)) { 

$produce_fruit_code   = $row['fruit_code']; 
$variety_name   = $row['variety_name']; 

echo $produce_fruit_code.' - '.$variety_name.'<br/>';

}

哪些输出:

Apple - Cox
Apple - Braeburn
Banana - Chester
Carrot - Kotaka
Carrot - Imperial
Carrot - Oneal

距离不到一百万英里,但仍然不存在。非常感谢任何帮助,谢谢!

最佳答案

您可能会得到一个大块的 sql 语句来为您执行此操作,但我会选择使用数组处理数据。

例如(未经测试,请原谅格式化):

$query   = "SELECT * FROM produce, varieties WHERE produce.id = varieties.fk_fruit_id";     
$result  = mysql_query($query) or die('Error : ' . mysql_error()); 

$res=array();

while ($row     = mysql_fetch_array($result, MYSQL_ASSOC)) { 

    $produce_fruit_code   = $row['fruit_code']; 
    $variety_name   = $row['variety_name']; 

    if(isset($res[$produce_fruit_code])){
        $res[$produce_fruit_code]+=','.$variety_name;
    }else{
        $res[$produce_fruit_code]=$variety_name;
    }

}        
print_r($res);

关于php - 使用 php 对查询进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050220/

相关文章:

php - 将 php 变量从一台服务器传输到另一台服务器

mysql - 事务MySQL

php - 使用 PHP 选择并显示 MySQL 表中的所有字段以获得无限数量的列

python - 在python中像这样格式化输出

php - 匹配 mysql select 查询中的 delimeter(|) 分隔值字段

php - 我的 HTML 表单使用 PHP 和 MySQL 无法正常工作

php - 在关联(数组)上找到 Doctrine\Common\Collections\ArrayCollection 类型的实体,但期待(其他)

php - Laravel - 从现有 Mysql 查询

php - MySQL:在九月和九月之间选择

MySQL-PDO 绑定(bind)参数