MySQL(或PHP?)按字段数据分组结果

编程入门 行业动态 更新时间:2024-10-09 09:11:47
本文介绍了MySQL(或PHP?)按字段数据分组结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个与以下类似的MySQL数据库:

ID组名 1 1 John 2 1 Andrea 3 1 Jack 4 2 Mike 5 2 Kurt 6 3 Alice

我需要将结果排序为如下所示的html表格:

组名称 ----------------------- 1约翰 Andrea 杰克 ----------------------- 2 Mike Kurt -------- --------------- 3 Alice -----------------------

我不知道这是应该用SQL查询(concat_group或类似的东西)还是用PHP,有人可以帮我吗?

伙计们,感谢下面的帮助,但我也需要完成类似的事情,比如:

ID meta_key meta_value n ame 1组1约翰 2组1安德里亚 3组1安杰克 4组2马克 5组2库尔特 6第3组爱丽丝

我需要对上例进行排序/显示,如下所示:

组名 -------------------- --- 1约翰安德里亚杰克 ----------------------- 2 Mike Kurt ----------------------- 3 Alice ------ -----------------

现在我的问题有了采取了新的维度。我的数据库如下所示:

b.ID b.meta_key b.meta_value a.title 1第1组标题1 2组1标题2 3组1标题3 4组2标题4 5组2标题5 6组3标题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标题1 6 标题2 2 标题3 12 -------------------------------- 2标题4 2 标题5 3 -------------------------------- 3标题6 7 --------------------------------

¿这甚至可能吗?

解决方案

这将是我的解决方案,althoug不是优雅的所有

<?php $ dbc =新MySQLI(DBHOST,DBUSER,DBPASS,DB); $ result = $ dbc-> query( SELECT p.Group as'group', GROUP_CONCAT(name)as name FROM prueba p GROUP BY p.Group ); ?> < table> < tr> 第< th> Group< / th> < th>名称< / 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>

I have a MySQL database that looks similar to this:

ID Group Name 1 1 John 2 1 Andrea 3 1 Jack 4 2 Mike 5 2 Kurt 6 3 Alice

I need to sort the results in a html table that looks like this:

Group Name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------

I don't know if this should be done with a SQL query (concat_group, or something similar) or with PHP, can somebody please help me out?

Guys, thanks for the help below, but I also need to accomplish something similar, like this:

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

and I need to sort / display the same as the example above, something like this:

group name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------

Now my problem has taken new dimensions. My database looks like:

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

(I'm working with to tables)

And I need to achieve:

group title coef --------------------------------- 1 Title 1 6 Title 2 2 Title 3 12 -------------------------------- 2 Title 4 2 Title 5 3 -------------------------------- 3 Title 6 7 --------------------------------

¿Is this even possible?

解决方案

This would my solution, althoug is not elegant at all

<?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>

更多推荐

MySQL(或PHP?)按字段数据分组结果

本文发布于:2023-10-30 18:33:26,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   数据   MySQL   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!