使用php / html将数据输出到HTML表格中

时间:2017-04-10 13:57:28

标签: php html mysql

我正在尝试从数据库将数据输出到我的网页上。我能够如此成功,但是以一种非常不整洁的方式。我试图将数据放在网站上的表格中,但没有成功。

下面,从数据库中检索数据,但是粗略地回应了。它看起来不整洁,但它成功输出到网页上

 <?php
        $query = "SELECT name, email, address FROM SHHowners";
        $result = mysqli_query($conn, $query);

        if (mysqli_num_rows($result) > 0) {
            // output data of each row
            while ($row = mysqli_fetch_assoc($result)) {
                echo "Name: " . $row["name"] . " - Email: " . $row["email"] . " - Address: " . $row["address"] . "<br>";
            }
        } else {
            echo "0 results";
        }


        mysqli_close($conn);

我尝试将数据放入HTML表格(在同一页面上,将PHP和HTML结合起来没有成功。如何将这些数据成功地放入有组织的表格中?

 <div class="container">
  <h2>Bordered Table</h2>
  <p>The .table-bordered class adds borders to a table:</p>            
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Address</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><?php $row["name"] ?></td>
        <td><?php $row["email"] ?></td>
        <td><?php $row["address"]?></td>
      </tr>
    </tbody>
  </table>
</div>

以下是我希望如何构建数据,如何实现这一目标?

Name  | Email | Address
Jo    |J@o.com|12 Street
Ben   |B@e.com|23 street

5 个答案:

答案 0 :(得分:1)

试试这个:

<div class="container">
  <h2>Bordered Table</h2>
  <p>The .table-bordered class adds borders to a table:</p>            
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Address</th>
      </tr>
    </thead>
    <tbody>
<?php 
while ($row = mysqli_fetch_assoc($result)) {
?>
      <tr>
        <td><?php $row["name"] ?></td>
        <td><?php $row["email"] ?></td>
        <td><?php $row["address"]?></td>
      </tr>
<?php } ?>
    </tbody>
  </table>
</div>

答案 1 :(得分:1)

尝试以下代码:

<div class="container">
  <h2>Bordered Table</h2>
  <p>The .table-bordered class adds borders to a table:</p>
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Address</th>
      </tr>
    </thead>
    <tbody>
      <tr>
    <?php
      $query  = "SELECT name, email, address FROM SHHowners";
      $result = mysqli_query($conn, $query);
      if (mysqli_num_rows($result) > 0) {
       // output data of each row
       while ($row = mysqli_fetch_assoc($result)) { ?>
          <td><?php $row["name"]?></td>
          <td><?php $row["email"]?></td>
          <td><?php $row["address"]?></td>
      <?php }
          } ?>
      </tr>
    </tbody>
  </table>
</div>

答案 2 :(得分:0)

<?php
        $query = "SELECT name, email, address FROM SHHowners";
        $result = mysqli_query($conn, $query);
?>
 <div class="container">
  <h2>Bordered Table</h2>
  <p>The .table-bordered class adds borders to a table:</p>            
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Address</th>
      </tr>
    </thead> <tbody>
<?php
        if (mysqli_num_rows($result) > 0) {
            // output data of each row
            while ($row = mysqli_fetch_assoc($result)) { 
?>
      <tr>
        <td><?php $row["name"] ?></td>
        <td><?php $row["email"] ?></td>
        <td><?php $row["address"]?></td>
      </tr>
<?php            }
        } else {
            echo "<tr><td colspan=3>0 results</td></tr>";
        }
        mysqli_close($conn);
?>
    </tbody>
  </table>
</div>

答案 3 :(得分:0)

您可以随时打印选择结果:

while ($row = mysqli_fetch_assoc($result)) {
   echo "<tr>
<td>".$row["name"]."</td>

<td>".$row["email"]."</td>

<td>".$row["address"] . "</td></tr>";

}

这不是一个非常干净的方式,但对于每一行应该在三个表格标题下方打印另一行。

答案 4 :(得分:0)

除了其他答案之外,没有一种非常简洁的方法可以做到这一点。

但您可以做的是尽可能将HTMLPHP分开放在同一个文件中。

文件顶部的PHP可以如下:

$query = "SELECT name, email, address FROM SHHowners";
$result = mysqli_query($conn, $query);

$htmlToDisplay = ''; //this variable will contain table rows

if (mysqli_num_rows($result) > 0) {
  // output data of each row
  while ($row = mysqli_fetch_assoc($result)) {
   //create the HTML row - we'll use this later
   $htmlToDisplay .= "<tr><td>".$row['name']."</td><td>". $row['email']."</td><td>".$row['address']."</td></tr>";   
  }
} else {
  $htmlToDisplay = "<tr><td>0 results</td><tr>";
}

然后,您可以在结束HTML代码(PHP)之后获得?>,如下所示:

<table class="table table-bordered">
  <thead>
    <tr>
      <th>Name</th>
      <th>Email</th>
      <th>Address</th>
    </tr>
  </thead>
  <tbody>
    <!-- echo your php row(s) here in a slightly neater way since it's one line -->
    <?php echo $htmlToDisplay; ?> 
  </tbody>
</table>

这会使文件的不同部分(PHPHTML)更具可读性。

您还可以使用像smarty这样的PHP模板引擎。