我有一个 MySQL 表,其中的值包含体育比赛的评委。布局示例:
Table name = competition
panel | name | role
Grade 1 | Bob | Judge 1
Grade 1 | Dave | Judge 2
Grade 2 | Jo | Judge 1
Grade 1 | Kat | Judge 3
我想用以下格式在 HTML 中显示:
-- Grade 1 --
Judge 1 | Bob
Judge 2 | Dave
Judge 3 | Kat
-- Grade 2 --
Judge 1 | Jo
面板名称是可变的,并且在比赛之间会发生变化,因此不能在代码中使用它们。我的尝试(无效)是:
<?php $panels_distinct = mysql_query("SELECT DISTINCT panel FROM competition"); ?>
<table>
<?php while $panel_names = mysql_fetch_array($panels_distinct) { ?>
<tr>
<td colspan="2"><?php echo $panel_names['panel'] ; ?></td>
</tr>
<?php $judges = mysql_query("SELECT * FROM competition WHERE panel = $panel_names['panel'] ") ;
while $judges_info=mysql_fetch_array($judges) { ?>
<tr>
<td><?php echo $judges_info['role'] ; ?></td>
<td><?php echo $judges_info['name'] ; ?></td>
</tr>
<?php } // end while $judges_info ?>
<?php } // end while $panel_names ?>
</table>
目前仅输出面板名称。感谢收到任何帮助或建议!
最佳答案
从 sql 中删除 DISTINCT
。此外,您还需要在表名之后使用 ORDER BY grade
。
要获得您显示的格式,您需要检测循环中成绩何时发生变化,然后打印标题行。
关于php - 使用 MySQL 表值作为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448167/