【问题标题】:How to iterate over mysql rows returned by group by clause?如何遍历 group by 子句返回的 mysql 行?
【发布时间】:2017-06-29 18:07:53
【问题描述】:

我在数据库中有这样的行:

标题 |输入

样本1 |一个
样品2 |一个
样品3 | C
样品4 |乙
样品4 | C
样品6 |一个
等等……

所以我使用 php 从 db 获取所有结果,现在我得到的问题是它按 id 和标题顺序打印行,但我想迭代每种类型的 5 个结果,直到打印所有行。

例如: 这是我的代码:
样品1 |一个
样品6 |一个
样品8 |一个
样品7 |一个
样品9 |一个
样品4 |乙
样品12 |乙
样品16 |乙
样品18 |一个
等等……

$query = "select group_concat(title),type as sample_name from table_name group by type";
if(mysqli_query($conn,$query))
{
 $result = mysqli_query($conn,$query);
 while($row = mysqli_fetch_array($result)
 {
  echo $row['sample_name] . ' belongs to type '. $row['type'];
 }
}

【问题讨论】:

  • 您对结果集进行迭代的逻辑看起来是正确的,但您的 echo 语句看起来对我不利。
  • 我更新了查询变量

标签: php mysql


【解决方案1】:

这里:

select group_concat(title) as sample_name from table_name

你只选择了title,别名为sample_name,在php中:

$row['type']

您正在使用不在结果集中的type 索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2019-07-29
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多