我有一个看起来与此类似的MySQL数据库:
ID Group Name 1 1 John 2 1 Andrea 3 1 Jack 4 2 Mike 5 2 Kurt 6 3 Alice
我需要在html表中对结果进行排序,如下所示:
Group Name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------
我不知道这是否应该通过SQL查询(concat_group或类似的东西)或PHP完成,有人可以帮帮我吗?
伙计们,感谢您的以下帮助,但我还需要完成类似的工作,例如:
ID meta_key meta_value name 1 group 1 John 2 group 1 Andrea 3 group 1 Jack 4 group 2 Mike 5 group 2 Kurt 6 group 3 Alice
我需要对上面的示例进行排序/显示,如下所示:
group name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------
现在,我的问题有了新的维度。我的数据库如下所示:
b.ID b.meta_key b.meta_value a.title 1 group 1 Title 1 2 group 1 Title 2 3 group 1 Title 3 4 group 2 Title 4 5 group 2 Title 5 6 group 3 Title 6 7 coef 6 Title 1 8 coef 4 Title 2 9 coef 12 Title 3 9 coef 2 Title 4 9 coef 3 Title 5 9 coef 7 Title 6
(我正在使用表)
我需要实现:
group title coef --------------------------------- 1 Title 1 6 Title 2 2 Title 3 12 -------------------------------- 2 Title 4 2 Title 5 3 -------------------------------- 3 Title 6 7 --------------------------------
¿这甚至可能吗?
这将是我的解决方案,althoug一点都不优雅
<?php $dbc = new MySQLI(DBHOST,DBUSER,DBPASS,DB); $result = $dbc->query(" SELECT p.Group as 'group', GROUP_CONCAT(name) as names FROM prueba p GROUP BY p.Group "); ?> <table> <tr> <th>Group</th> <th>Name</th> </tr> <?php while($row = $result->fetch_assoc()){ $names = split(",",$row["names"]); ?> <tr> <td><?php echo $row["group"] ?> </td> <td><?php echo $names[0]; array_shift($names) ?></td> </tr> <?php foreach( $names as $name){ ?> <tr> <td></td> <td><?php echo $name ?></td> </tr> <?php } ?> <?php } ?> </table>