使用MySQL的子行的数据表

时间:2018-12-10 11:20:07

标签: javascript php mysql html5

在MySQL数据库中,我有两个表 Abc Pqr 。在 Abc 表中有一个唯一的ID,该ID在 Pqr 表中用作外键。

相对于 Abc 唯一ID,我想将父元素显示为 Abc 表数据,并将子行显示为 Pqr 表数据。 / p>

这是我的代码:

$sqlGetParents="SELECT * from projectrera order by project_id";
$resultGetParents = $conn->query($sqlGetParents);   
?>
<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th></th>
            <th>Project Name</th>
            <th>Builder Id</th>
            <th>Location Id</th>
            <th>Phase</th>
            <th>Status</th>
        </tr>
    </thead>   
      <?php
      while ($row = mysqli_fetch_array($resultGetParents))  { 
       echo " <tr>
            <td class='details-control'></td>
            <td>".$row[1]."</td>
            <td>".$row[2]."</td>
            <td>".$row[3]."</td>
            <td>".$row[8]."</td>
            <td>".$row[15]."</td>
        </tr>";
     }   ?>   
</table>  
<div id="test">
    <table id='example1'>
<?php 
$sqlGetCatWithParent1="SELECT * from info";
 $resultGetCatWithParent1 = $conn->query($sqlGetCatWithParent1);
while ($row3 = mysqli_fetch_array($resultGetCatWithParent1)) {
 echo " <tr>
            <td></td>
            <td>".$row3[1]."</td>
            <td>".$row3[2]."</td>
            <td>".$row3[3]."</td>
        </tr>";
}
?>

1 个答案:

答案 0 :(得分:0)

为什么不在选择语句上使用JOIN或子查询?我认为这将对您有所帮助,因为您在表上使用了关系模式。 示例:

$sqlGetParents =

SELECT abc.*, pqr.* from projectrera abc
  LEFT JOIN info pqr on pqr.project_id = abc.project_id
order by project_id

在您的HTML表中,建议您使用FOREACH而不是WHILE。

<?php foreach ($row->result() in $resultGetParents)  { 
  echo "<tr>
        <td class='details-control'></td>
        <td>".<?php echo $row[1]."</td>
        <td>".$row[1]."</td>
        <td>".$row[3]."</td>
        <td>".$row[8]."</td>
        <td>".$row[15]."</td>
    </tr>";
  echo "<tr>
        <td></td>
        <td>".$row[1]."</td>
        <td>".$row[2]."</td>
        <td>".$row[3]."</td>
    </tr>";

}?>

您可以根据结果更改$行号,或使用文本轻松知道应在表中显示哪些列。 (即$ row ['project_id'])