2016-01-21 34 views
-2

你好:)我掙扎在表的創建,這裏是我的問題PHP HTML表:PIVOT

第一:我想這個文件

enter image description here

副本,但我沒有理念去實現它:(

這是我的表

enter image description here

012的屏幕截圖

奧凱1日學生的名字必須是合併就像不同

2日的日期是(21,22,23)必須成爲列就像上面第一張圖片和言論將被放置日期若跌破學生是存在或不存在

這裏是我到目前爲止的代碼:(

<table class="table table-bordered table-condensed" align="center" bordercolor="#CCCCCC"> 
          <tr bgcolor="#009933"> 
          <td align="center" style="color:#FFF;">Name</td> 
          <td align="center" style="color:#FFF;">Date</td> 
          <td align="center" style="color:#FFF;">Remark</td> 
          </tr> 
          <?php 
          $queryres = mysql_query("SELECT * FROM tb_attendance WHERE instructor_id = '$inst_id' AND description = '$desc'"); 
          while($result= mysql_fetch_array($queryres)){ 
           echo "<tr>"; 
           echo "<td class=\"text-center\">".$result['stud_name']."</td>"; 
           echo "<td class=\"text-center\">".$result['date']."</td>"; 
           echo "<td class=\"text-center\">".$result['remark']."</td>"; 
          } 
          ?> 
         </table> 

預先感謝您

回答

1

要創建這樣,你必須使用MySQL的一個表CASE()可讓您將行轉換爲列。

Select student_name, case 
    when date=1 then count(remark) as day_1 
    when date=2 then count(remark) as day_2 
    when date=3 then count(remark) as day_3 
    . 
    . 
    . 
    when day=30 then count(remark) as day_30 
    end case from table_name where intsructor_id='' 

部署桌子上,趕上行集和循環陣列上HTML表或div的

<table> 
<?php 
foreach($query_students as $data) { 
    echo "<tr><td>".$data[0]."</td>"; 
    for ($i=1; $i<=30; $i++) { 
     echo "<td>".$data[$i]."</td>" 
    } 
    echo "</tr>"; 
} 
?> 
</table> 

不要使用mysql_fetch已被棄用,不安全的地獄。改爲使用ORM或使用PDO,MYSQLI。爲了消毒目的,使用準備好的陳述

+0

umm,存儲過程絕對沒有辦法用舊的mysql _ *()函數... –

+0

謝謝你的迴應,先生,但你能詳細說明一下嗎?因爲我不是很擅長這個:( – CallMeJeo

+0

)你是對的@MarcB,它是準備好的陳述,謝謝, – datelligence