简体   繁体   English

附加数据并显示html表

[英]Append data and display html table

I have some data set. 我有一些数据集。 I want to arrange data like this: 我想这样排列数据:

表格1

My code displays result like this: 我的代码显示如下结果:

表2 .

How can I fix this. 我怎样才能解决这个问题。 This is my code: 这是我的代码:

<?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>";
?>

Database table structure - testdate 数据库表结构 -测试日期

databasetable 数据库表

First, your data needs to be normalized. 首先,您的数据需要规范化。 There should be a way to write a database query to skip this step if you look hard enough. 如果您看起来很努力,应该有一种方法可以编写数据库查询来跳过此步骤。

Walkthrough each row in the while loop , building a close representation for it an array. 遍历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'];
}

Then make your $rowsMarkup which can be readily concatenated with the table heading. 然后,使您的$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