Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQL表值作为头_Php_Header_While Loop_Mysql - Fatal编程技术网

Php 使用MySQL表值作为头

Php 使用MySQL表值作为头,php,header,while-loop,mysql,Php,Header,While Loop,Mysql,我有一个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

我有一个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中删除不同的内容。此外,还需要在表名后按等级排序


要获得显示的格式,您需要检测循环中的等级变化,然后打印标题行。

一个问题是,您应该在比较的值周围加上单引号:

panel = '$panel_names['panel']' " );
另一个问题是,当数组键嵌入字符串时,php不喜欢解析数组键,因为数组键周围有引号。可以用{}将数组包围起来:

panel = '{$panel_names['panel']}' " );