2017-10-16 2 views
0

私は各レッスンで各生徒を成績評価する評価システムを作成しました。表示するには行データが列見出しに依存する動的な行と列を持つhtmlテーブルのPHP

  • 瞳孔名
  • 瞳孔ID
  • レッスンのタイトル
  • レッスンID
  • レッスングレード

:私は、次の見出しを持つテーブルを作成し、フォームを持っていますデータ私はスプレッドシートのように少し動作するテーブルを作成しようとしています。各行は

SELECT * FROM table WHERE pupilid = "rowid" AND lessonid = "columnheading" 

すなわちグレードのためのデータベースの瞳IDと検索をとり、私はwhileループとPHPを使用して行と列の見出しを作成することができますが、私はそれぞれを作成する方法を見つけ出すことはできません
列見出しと瞳孔IDとの間のセルリンク。

これを作成するための唯一の方法は、フローティングdivです。
スタイルは非常に難しく、名前とグレードは異なるグリッドにあるため、並べ替えが難しいです。
私は本当にこれを行う方法に任意のヘルプ/リンクをいただきありがとうございます。
新しい瞳孔を追加して各レッスン列をスプレッドシートに追加できます。私は以下のコードを使用して、列/行の見出しを作成することができ

+-------+----+----+--- + 
| Pupil | L1 | L2 | L3 | 
+-------+----+----+----+ 
| John | B | C+ | D | 
+-------+----+----+----+ 
| Sarah | B | A | F | 
+-------+----+----+----+ 
| Jim | D | A | B | 
+-------+----+----+----+ 

テーブルは、ソートの下図のようになります。私はグレードビットのコードを入手するための助けに本当に感謝します。あなたの助けを事前に

<table> 
<tr> 
    <th>Pupil name</th> 
    <?php 
     $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` "); 
    while($rowslesson=$selectlesson->fetch_array()) 
    { 
    ?> 
    <th><?php echo $rowslesson['lessonid']; ?></th> 
    <?php 
    } 
    ?> 

</tr> 
<?php 
     $selectpupil=$connect->query("SELECT DISTINCT pupilid FROM `grades` "); 
    while($rowspupil=$selectpupil->fetch_array()) 
    { 
    ?> 
    <tr> 
    <td><?php echo $rowspupil['pupilid']; ?></td> 
    </tr> 
    <?php 
    } 
    ?> 

感謝。

+0

を動作するように見え、[Googleスプレッドシート](https://docs.google.com/スプレッドシート/ u/0 /)または[Excel](https://products.office.com/en-us/excel)で質問に必要なものすべてを記入する必要があります。 – CyanCoding

+0

アイデアをありがとうが、私は間違いなくコードを介してそれをしたい。 – bevan7

+2

おそらくあなたがいくつかのコードを見せたら助けになるでしょう。 – antfuentes87

答えて

0

実際、私はそれを行う方法を考え出しました。私はTDにおけるSQL検索を繰り返し、あなたがコードを経由してこれを行うに興味を持っていない場合は

<table> 
<tr> 
    <th>Pupil name</th> 
    <?php 
     $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` "); 
    while($rowslesson=$selectlesson->fetch_array()) 
    { 
    ?> 
    <th><?php echo $rowslesson['lessonid']; ?></th> 
    <?php 
    } 
    ?> 

</tr> 
<?php 
     $selectpupil=$connect->query("SELECT DISTINCT pupilid FROM `grades` "); 
    while($rowspupil=$selectpupil->fetch_array()) 
    { 
    ?> 
    <tr> 
     <td><?php $pupil= $rowspupil['pupilid']; 
      echo $rowspupil['pupilid']; ?> 
     </td> 
     <?php 
     $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` "); 
      while($rowslesson=$selectlesson->fetch_array()) 
       { 
       ?> 
     <td><?php $lessongrade = $rowslesson['lessonid']; 

      $selectgrade=$connect->query("SELECT * FROM `grades` where lessonid ='$lessongrade' and pupilid = '$pupil' LIMIT 1 "); 
      while($rowsgrade=$selectgrade->fetch_array()) 
      { 
      echo $rowsgrade ['grade']; 
      }?> 
     </td> 
     <?php 
     } 
     ?> 
    </tr> 
    <?php 
    } 
    ?> 



</tr> 

+1

ループ内で繰り返しクエリを実行する代わりに、テーブルを結合する必要があります。 – Barmar

+0

どうすればいいですか?すべてのデータは同じテーブルから来ています – bevan7

+0

私は参照してください。ピボットをする必要があります。 https://stackoverflow.com/questions/7674786/mysql-pivot-table – Barmar

関連する問題