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

Php 如何将mysql查询输出到html表?,php,mysql,html-table,Php,Mysql,Html Table,再次需要你的帮助 所以我有一个查询,有多个变量,我必须输出到一个表中 以下是查询: 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

再次需要你的帮助

所以我有一个查询,有多个变量,我必须输出到一个表中

以下是查询:

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>

奥拉尔
鲁尼
马蒂
米尔克里
乔伊
维内里
8:00 - 9:00
伴侣
罗曼娜
Geogra
伴侣
罗曼娜
Geogra
伴侣
罗曼娜
Geogra
伴侣
罗曼娜
Geogra
兰特1
9:00 - 10:00
兰特2
兰特2
兰特1
兰特1
兰特1
10:00 - 11:00
兰特2
兰特2
兰特1
兰特1
兰特1
11:00 - 12:00
兰特3
兰特3
兰特1
兰特1
兰特1
不要使用下拉列表,我不会使用它们

您是否知道如何填充它,但如果某个时间间隔内(例如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

奥拉尔

我建议您
按ore.id,zi.zile
订购


由于您逐行迭代,而不是逐列迭代,您将能够在循环时优化

尝试这样做

$xarr=Array();
$xcols=Array();
while($randorar=mysql_fetch_array($gaseste_oraru))
{
    $xcols[$randorar['zile']]++;
    $xarr[$randorar['ore']][$randorar['zile']] = $randorar['materie']
} 
echo "<tr><th>orar</th>";
foreach(array_keys($xcols) as $x)
   echo '<th>'.$x.'</th>';
echo "</tr>\n";

foreach($xarr as $key=>$y){
   echo '<tr><th>'.$key.'</th>';
   foreach(array_keys($xcols) as $x)
      echo '<td>'.$y[$x].'</td>';
   echo "</tr>\n";
}
$xarr=Array();
$xcols=Array();
而($randorar=mysql\u fetch\u数组($gaseste\u oraru))
{
$xcols[$randorar['zile']]++;
$xarr[$randorar['ore'][$randorar['zile']]=$randorar['materie']
} 
回声“orar”;
foreach(数组_键($xcols)为$x)
回音“.$x.”;
回音“\n”;
foreach($xarr作为$key=>$y){
回显“.$key.”;
foreach(数组_键($xcols)为$x)
回显“.$y[$x]”;
回音“\n”;
}

好的,这就是解决方案:

 $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>
$oraru=”
选择不同的
子子乐,
ore.ora作为矿石,
材料
自紫
在zi.id=orar.id\u zi上左连接orar
左连接ore上的ore.id=orar.id\u ora
左键在nume\u scoli.id=orar.id\u scoala上加入nume\u scoli
在materi\u pe\u clase.id\u scoala=nume\u scoli.id上左连接materi\u pe\u clase
在materi_pe_clase.id_clasa=clase.id和orar.id_clasa=clase.id上左连接clase
左连接elevi.id_clasa上的elevi=materii_pe_clase.id_clasa
在materi.id=orar.id\u materie上左连接materi
其中clase.`id`=1
按矿石订购。`id`,zi.`zile`ASC;
$gaseste_oraru=mysql_查询($oraru);
$rows=array();
而($randorar=mysql\u fetch\u数组($gaseste\u oraru))
{        
$ziorar=$randorar['zile'];
$ORAR=$randorar['ore'];
$materieorar=$randorar['materie'];
if(!isset($rows[$orar])){
$rows[$ORAR]=array();
}
$rows[$orar][$ziorar]=$materialorar;
}//斯法斯特
?>
OrarLuniMartiMercuriJoiVineri
我是在朋友的帮助下弄明白的


无论如何,谢谢大家

将表代码放入while循环并动态生成表。这就是我试图做的,但它似乎不起作用。我也是罗马尼亚人:)我是dat seama,Sallt。下面是一个由php生成的表格示例:Sallt!嗯……让我试试