1

スポーツ大会のジャッジを含む値を持つ 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>

現時点では、パネル名のみが出力されています。どんな助けや提案もありがたく受け取った!

4

2 に答える 2

0

1 つの問題は、比較する値を一重引用符で囲む必要があることです。

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

もう 1 つの問題は、配列キーが文字列に埋め込まれている場合、配列キーが引用符で囲まれている場合、その配列キーの解析を php が好まないことです。{} で配列を囲むことができます。

panel = '{$panel_names['panel']}' " );
于 2013-03-16T12:10:00.000 に答える
0

DISTINCTSQL から削除します。ORDER BY gradeまた、テーブル名の後に必要です。

あなたが示したフォーマットを取得するには、ループ内で成績がいつ変化したかを検出し、タイトル行を出力する必要があります。

于 2013-03-16T10:35:51.287 に答える