2016-01-21 65 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