2

再びあなたの助けが必要です。

だから私はテーブルに出力しなければならない複数の変数を持つクエリを持っています。

クエリは次のとおりです。

SELECT DISTINCT
          zi.zile,
          ore.ora AS ore,
          materii.materie
        FROM
          zi LEFT JOIN  orar ON zi.id = orar.id_zi 
          LEFT JOIN  ore ON ore.id = orar.id_ora 
          LEFT JOIN  nume_scoli ON nume_scoli.id = orar.id_scoala 
          LEFT JOIN  materii_pe_clase ON materii_pe_clase.id_scoala = nume_scoli.id 
          LEFT JOIN  clase ON materii_pe_clase.id_clasa = clase.id AND orar.id_clasa = clase.id
          LEFT JOIN  elevi ON elevi.id_clasa = materii_pe_clase.id_clasa 
          LEFT JOIN  materii ON materii.id = orar.id_materie 
                WHERE clase.`id`=1

            ORDER BY zi.`zile`, ore.`id` ASC

このクエリの結果は次のようになります。

画像

これは私がphpで行ったことです:

  $oraru = "the query from up this page ";
    $gaseste_oraru = mysql_query($oraru);
    $numar_orar = mysql_num_rows($oraru);
  if($numar_orar==0)
    {
      echo "Orarul nu este disponibil momentan.";
    }
  else 
    {
    while($randorar=mysql_fetch_array($gaseste_oraru))
    {
        $ziorar = $randorar['zile'];
        $oraorar = $randorar['ore'];
        $materieorar = $randorar['materie'];
}
}

これは、データベースからのデータを入力するテーブルです。

テーブル

ここにテーブルのコードがあります:

<div class="CSSTableGenerator" >
                <table >
                    <tr>
                        <td>
                           Orar
                        </td>
                        <td>
                           Luni
                        </td>
                        <td >
                            Marti
                        </td>
                        <td>
                            Miercuri
                        </td>
                        <td>
                            Joi
                        </td>
                        <td> 
                            Vineri
                        </td>
                    </tr>
                    <tr>
                        <td >
                            8:00 - 9:00
                        </td>
                        <td>
                           <select>
  <option>Mate</option>
  <option>Romana</option>
  <option>Geogra</option>
</select>

                        </td>
                        <td>
                            <select>
  <option>Mate</option>
  <option>Romana</option>
  <option>Geogra</option>
</select>
                        </td>
                        <td>
                            <select>
  <option>Mate</option>
  <option>Romana</option>
  <option>Geogra</option>
</select>
                        </td>
                        <td>
                           <select>
  <option>Mate</option>
  <option>Romana</option>
  <option>Geogra</option>
</select>
                        </td>

                             <td>
                            rand 1
                        </td>
                    </tr>
                    <tr>
                        <td >
                            9:00 - 10:00
                        </td>
                        <td>
                            rand 2
                        </td>
                        <td>
                            rand 2
                        </td>
                        <td>
                            rand 1
                        </td>
                        <td>
                            rand 1
                        </td>
                             <td>
                            rand 1
                        </td>
                    </tr>
                    <tr>
                        <td >
                            10:00 - 11:00
                        </td>
                        <td>
                            rand 2
                        </td>
                        <td>
                            rand 2
                        </td>
                        <td>
                            rand 1
                        </td>
                        <td>
                            rand 1
                        </td>
                             <td>
                            rand 1
                        </td>
                    </tr>
                    <tr>
                        <td >
                            11:00 - 12:00
                        </td>
                        <td>
                            rand 3
                        </td>
                        <td>
                            rand 3
                        </td>
                        <td>
                            rand 1
                        </td>
                        <td>
                            rand 1
                        </td>
                       <td>
                            rand 1
                        </td>
                </table>
            </div>

ドロップダウンは気にしないでください、私はそれらを使用しません!

それを設定する方法はわかりますが、ある間隔 (Luni 8:00-9:00 など) に何も存在しない場合は、テーブルに何も書き込みませんか?

編集

これが私が試したものです:

<div class="CSSTableGenerator" >
   <table >
                    <tr>
                        <td>
                           Orar
                        </td>
                        <?php
  {
      $oraru = "the query from up this page";
    $gaseste_oraru = mysql_query($oraru);

    while($randorar=mysql_fetch_array($gaseste_oraru))
    {
        $ziorar = $randorar['zile'];
        $oraorar = $randorar['ore'];
        $materieorar = $randorar['materie'];
        echo "<td>";
        echo $randorar['zile'];
        echo "</td>";
        echo "</tr>";
        echo "<tr>";
        echo "<td>";
        echo $randorar['ore'];
        echo "</td>";
        echo"<td>";
        echo $randorar['materie'];
        echo "</td>";
        echo "</tr>";
    }//sfarsit while

結果は次のとおりです。

悪い

何か案は?

4

3 に答える 3

0

わかりました、これが解決策です:

 $oraru = "
        SELECT DISTINCT
              zi.zile,
              ore.ora AS ore,
              materii.materie
            FROM zi 
              LEFT JOIN  orar ON zi.id = orar.id_zi 
              LEFT JOIN  ore ON ore.id = orar.id_ora 
              LEFT JOIN  nume_scoli ON nume_scoli.id = orar.id_scoala 
              LEFT JOIN  materii_pe_clase ON materii_pe_clase.id_scoala = nume_scoli.id 
              LEFT JOIN  clase ON materii_pe_clase.id_clasa = clase.id AND orar.id_clasa = clase.id
              LEFT JOIN  elevi ON elevi.id_clasa = materii_pe_clase.id_clasa 
              LEFT JOIN  materii ON materii.id = orar.id_materie 
              WHERE clase.`id`=1
            ORDER BY  ore.`id`, zi.`zile` ASC";
      $gaseste_oraru = mysql_query($oraru);
    $rows = array();
    while($randorar=mysql_fetch_array($gaseste_oraru))
    {        
        $ziorar = $randorar['zile'];
        $oraorar = $randorar['ore'];
        $materieorar = $randorar['materie'];
        if(!isset($rows[$oraorar])){
            $rows[$oraorar] = array();
        }
        $rows[$oraorar][$ziorar] = $materieorar;        
    }//sfarsit while

    ?>
<div class="CSSTableGenerator" >
    <table >
        <tr>
            <td>Orar</td><td>Luni</td><td>Marti</td><td>Mercuri</td><td>Joi</td><td>Vineri</td>
        </tr>
    <?php

        foreach ($rows as $key => $row) {
          if(!isset($row['Luni'])) $row['Luni'] = '&nbsp;';//incase no data from database
          if(!isset($row['Marti'])) $row['Marti'] = '&nbsp;';//incase no data from database
          if(!isset($row['Miercuri'])) $row['Miercuri'] = '&nbsp;';//incase no data from database
          if(!isset($row['Joi'])) $row['Joi'] = '&nbsp;';//incase no data from database
          if(!isset($row['Vineri'])) $row['Vineri'] = '&nbsp;';//incase no data from database
          echo "<tr>";
          echo "<td>".$key."</td>";
             foreach ($row as $day => $study) {
               echo "<td>$study</td>";    
             }
             echo "</tr>";
         } 
     ?>
    </table>
</div>

友達に手伝ってもらって解決しました!

とにかくありがとうございました!

于 2013-09-28T16:15:42.537 に答える