是否可以使用HTML TABLE中的Rowspan在一行中显示两个数据?

时间:2019-01-28 05:25:38

标签: php html css

我建立了一个与数据库连接的html表。但是我想要像excel这样的表格设计,它在使用rowpan的html表格中。但是我无法解决我正在解决的问题。

请帮助我创建此格式。参见下面的代码

<tbody>
  <?php
    include_once('connection.php');
    $sql = "SELECT * FROM rqn ";

      $query = mysqli_query($conn, $sql);
      while($row = mysqli_fetch_assoc($query)){
      $result = $row['rqn_no'];
      ?>
      <tr>
        <td rowspan="2"><?php echo $row['rqn_no'] ?></td>
        <td><?php echo $row['date_filed'] ?></td>
        <td><?php echo $row['desc_text'] ?></td>
        <td><?php echo $row['remarks'] ?></td>
        <td><?php echo $row['date_approved'] ?></td>
        <td>
        <?php
          include_once('connection.php');
          $sql1 = "SELECT * FROM  po_data where po_data.rqn_base = $result ";
          $query1 = mysqli_query($conn, $sql1);
          while($row1 = mysqli_fetch_assoc($query1)){
            ?>

              <?php echo $row1['po_no'] ?>

            <?php
          }
        ?> 
        </td>
      </tr>

    <?php 
   }
  ?>      
</tbody>

我想要的结果: https://prnt.sc/md2t2s

实际结果:https://prnt.sc/md2tpk

2 个答案:

答案 0 :(得分:0)

您可以将rowspandiv结合使用以获得所需的结果。试试这个,

<tbody>
  <?php
    include_once('connection.php');
    $sql = "SELECT * FROM rqn ";

      $query = mysqli_query($conn, $sql);
      while($row = mysqli_fetch_assoc($query)){
      $result = $row['rqn_no'];
      ?>
      <tr>
        <td rowspan="2"><?php echo $row['rqn_no'] ?></td>
        <td><?php echo $row['date_filed'] ?></td>
        <td><?php echo $row['desc_text'] ?></td>
        <td><?php echo $row['remarks'] ?></td>
        <td><?php echo $row['date_approved'] ?></td>

        <?php
          include_once('connection.php');
          $sql1 = "SELECT * FROM  po_data where po_data.rqn_base = $result ";
          $query1 = mysqli_query($conn, $sql1);
          $total_rows = mysqli_num_rows($query1);
          // open <td>
          echo "<td rowspan=$total_rows>";

          while($row1 = mysqli_fetch_assoc($query1)){
            ?>

              <?php echo "<div style='border-bottom:1px solid black'>" . $row1['po_no'] ."</div>" ?>

            <?php
          }

          // close </td>
          echo "</td>";
        ?> 
        </td>
      </tr>

    <?php 
   }
  ?>      
</tbody>

根据需要调整CSS。

答案 1 :(得分:0)

嗨,这是我的结果的最终答案。 Output

<tbody>
<?php 
    include ("connection.php");
    $sql = "SELECT * FROM rqn ";
    $result= mysqli_query($conn, $sql);
    while($row=mysqli_fetch_array($result)):
      $ename = $row['rqn_no'];
      // count the esal in each ename
      $sql2 = "SELECT * FROM po_data WHERE rqn_base=$ename";
      $result2 = mysqli_query($conn, $sql2);
      $count_result2 = mysqli_num_rows($result2);
?>
<tr >
    <td rowspan="<?php echo $count_result2; ?>"><?php echo $row['rqn_no']; ?></td>
    <td rowspan="<?php echo $count_result2; ?>"><?php echo $row['date_filed']; ?></td>
    <td rowspan="<?php echo $count_result2; ?>"><?php echo $row['desc_text']; ?></td>
    <td rowspan="<?php echo $count_result2; ?>"><?php echo $row['remarks']; ?></td>
    <td rowspan="<?php echo $count_result2; ?>"><?php echo $row['date_approved']; ?></td>
    <?php
          // loop each esal
      while($row2 = mysqli_fetch_array($result2)):
          ?>
    <td><?php echo $row2['po_no']; ?></td>
</tr>
    <?php
          endwhile; // endwhile for each esal looping
    endwhile; // endwhile for the main looping
    ?>
</tbody>

Tnx帮助了我