如何在while循环中对PHP中的数据进行分组

时间:2010-05-21 17:07:54

标签: php mysql

我在数据库中查询并使用while循环结果,然后检索样本数据:

echo $db->f("FirstName")."===".$db->f("Question")."=".$db->f("Answer")."<br>";

Michael===Q2=allergy
Michael===Q2=Hives
Michael===Q6=A lot
Michael===Q8_A=Daktacort
Michael===Q1=Itch
Michael===Q5=Smoke
Michael===Q8_A=Diprogenta
Christian===Q1=Stuffy
Christian===Q6=A lot
Christian===Q1=Clear
Christian===Q5=Pollen

如何根据名称和Q值对它们进行分组? 我想要这样的结果:

Name          Q1           Q2                         ..... so on and so fort.
Michael      Itch          Hives, Allergy
Christian    Stuffy 

3 个答案:

答案 0 :(得分:1)

您可以使用GROUP_CONCAT在MySQL中执行此操作

SELECT FirstName,Question,GROUP_CONCAT(Answer) AS Answers
FROM <tables>
GROUP BY FirstName,Question

答案 1 :(得分:0)

使用数组而不是对函数的离散调用循环。然后你可以有类似的东西:

$data[0]["FirstName"] = "Michael";
$data[0]["Q1"] = "Itch";
$data[0]["Q2"] = "Hives, Allergy";
... etc

当您想要显示数据并显示包含关联信息的离散行的表时,您可以遍历此数组。

答案 2 :(得分:0)

您可以使用MySQL的GROUP_CONCAT()功能。

但请牢记group_concat_max_len的限制。