簡體   English   中英

使用php / html將數據輸出到HTML表中

[英]Outputting Data into an HTML table using php/html

我正在嘗試將數據從數據庫輸出到我的網頁上。 我能夠如此成功,但是以非常不整潔的方式。 我試圖將數據放在網站上的表格中,但沒有成功。

下面,從數據庫中檢索數據,但是只是粗略地回顯了數據。 看起來不整潔,但已成功輸出到網頁上

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

嘗試這個:

<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>

試試下面的代碼:

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

您始終可以像這樣打印來自選擇的結果:

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

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

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

}

這不是一種很干凈的方法,但是對於每一行, 在三個表標題下方打印另一行。

除了其他答案外,實際上沒有一種非常整潔的方法來執行此操作。

但是您可以做的是在同一個文件中將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>";
}

然后,可以在關閉PHP標記( ?> )之后使用HTML ,如下所示:

<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模板引擎。

暫無
暫無

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

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