How to group data in PHP inside the while loop
I query in a database and loop the result using while and heres the sample data retrieve:
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
How can I group them according to name and to their Q value? I want something like this result:
Name Q1 Q2 开发者_如何学C ..... so on and so fort.
Michael Itch Hives, Allergy
Christian Stuffy
You could use GROUP_CONCAT to do this in MySQL
SELECT FirstName,Question,GROUP_CONCAT(Answer) AS Answers
FROM <tables>
GROUP BY FirstName,Question
Use an array rather than a loop of discrete calls to a function. Then you could have something like:
$data[0]["FirstName"] = "Michael";
$data[0]["Q1"] = "Itch";
$data[0]["Q2"] = "Hives, Allergy";
... etc
You can loop through this array when you want to display the data and present a table with discrete rows of associated information.
You can use MySQL's GROUP_CONCAT() function for that.
But keep the limitations of group_concat_max_len in mind.
精彩评论