簡體   English   中英

附加數據並顯示html表

[英]Append data and display html table

我有一些數據集。 我想這樣排列數據:

表格1

我的代碼顯示如下結果:

表2

我怎樣才能解決這個問題。 這是我的代碼:

<?php
echo "<tr><th></th><th>Control</th><th>Sub 1</th><th>Sub2</th></tr>";
    $i=0;
    $PrevIssoff=0;
    $sql="SELECT `code`, `name`,`type` 
            FROM `testdate` 
            WHERE `code`='11111'
            ORDER BY `code` ASC, `type` ASC ";
    $result=mysql_query($sql);
    while($row=mysql_fetch_array($result)){
        $frm=$row['code'];
        if ($frm != $PrevIssoff && $row['type']==0)
            {
            $i=$i+1;
            $PrevIssoff=$frm;           
            echo "<tr><td>$i</td><td>$row[name]</td><td></td><td></td></tr>";
            }   
        else if($row['type']==1 )
            {
            echo "<tr><td></td><td></td><td>$row[name]</td><td></td></tr>";
            }
        else if ($row['type']==2)
            {
            echo "<tr><td></td><td></td><td></td><td>$row[name]</td></tr>";
            }
    }

    echo"</table>";
?>

數據庫表結構 -測試日期

數據庫表

首先,您的數據需要規范化。 如果您看起來很努力,應該有一種方法可以編寫數據庫查詢來跳過此步驟。

遍歷while循環中的每一行,為它建立一個數組的緊密表示。

$dataTable = [];
while ($row = mysqli_fetch_array($result)) {
  $numRows = count($dataTable);
  $lastRowIndex = $numRows == 0 ? 0 : $numRows-1;

  if($numRows == 0) {
     $dataTable[] = [];
  }

  if(count($dataTable[$lastRowIndex]) == 3) {
     $dataTable[] = [];
     $lastRowIndex += 1;
  }

  $type = $row['type'];
  $dataTable[$lastRowIndex][$type] = $row['name'];
}

然后,使您的$rowsMarkup可以輕松地與表標題連接。

$rowsMarkup = array_map(function($row) {
  return '<tr>'.
         '<td>'.$row[0] .'</td>'.
         '<td>'.$row[1] .'</td>'.
         '<td>'.$row[2] .'</td>'.
         '</tr>';
  }, 
  $dataTable
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM