duan032225 2013-09-28 13:18
浏览 43
已采纳

如何将mysql查询输出到html表?

need your help again.

So I have a query, with multiple variables which I have to output to a table.

Here is the query:

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

and the result of this query looks like this :

image

Now this is what I`ve done in 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'];
}
}

This is the table I want to populate with data from the database:

table

Here you have the code of the table:

<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>

NEVERMIND THE DROPDOWNS, I WON`T USE THEM!

Do you have any idea how to populate it, BUT if nothing exists for an interval (e.g Luni 8:00-9:00), then write nothing in the table?

EDIT

Here is what I tried :

<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

Here is the result:

bad

Any ideas?

  • 写回答

3条回答 默认 最新

  • doucuo9126 2013-09-28 16:15
    关注

    Ok, so this is the solution:

     $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>
    

    I figured it out with some help from a friend!

    Thank you all anyway!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考