簡體   English   中英

在PHP / HTML表中顯示SQL表

[英]Display SQL table in PHP/HTML Table

我想讓我的SQL表通過PHP填充到HTML表中。 但是,我只是創建了表頭。 填充有什么問題? 這是我的代碼:

 <?php
$con=mysqli_connect("server.com","username","password");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM Orders");

echo "<table>";
echo "<table border='1'>
<tr>
<th>ID</th>
<th>orderNumber</th>
<th>Price</th>
<th>customerName</th>
<th>salesRep</th>
<th>DatePicker</th>
<th>shipMethod</th>
<th>trackingNumber</th>
<th>Statuscheck</th>
<th>Edit</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['ID'] . "</td>";
  echo "<td>" . $row['orderNumber'] . "</td>";
  echo "<td>" . $row['Price'] . "</td>";
  echo "<td>" . $row['customerName'] . "</td>";
  echo "<td>" . $row['salesRep'] . "</td>";
  echo "<td>" . $row['DatePicker'] . "</td>";
  echo "<td>" . $row['shipMethod'] . "</td>";
  echo "<td>" . $row['trackingNumber'] . "</td>";
  echo "<td>" . $row['Statuscheck'] . "</td>";
  echo "<td>" . $row['Edit'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

?>
</body>
</html>

“編輯”是這樣,因此我可以擁有一個編輯超鏈接以使用SQL UPDATE。 它實際上不是數據庫中SQL表的一部分。 任何幫助是極大的贊賞。 謝謝!

好的,這就是問題所在,編輯頁面不會預填充已經填寫的字段,更新按鈕也不會實際更新數據庫。 這是編輯頁面的代碼。

$query = "SELECT orderNumber, customerName, salesRep, DatePicker, shipMethod, trackingNumber, StatusCheck FROM Orders WHERE id = '$id'";
$result = @mysql_query($query);

mysql_fetch_object($result);
?>
<form name="update order" method="post" action="edit.php?a=edit&id=<? echo($ID) ?>&update=1">
  <table width="50%" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td width="50%">Order Number</td>
      <td><input name="orderNumber" type="text" id="orderNumber" value="<? echo($row->orderNumber) ?>"></td>
    </tr>
    <tr> 
      <td>Customer Name</td>
      <td><input name="customerName" type="text" id="customerName" value="<? echo($row->customerName) ?>"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td>Sales Rep</td>
      <td><input name="headline" type="text" id="headline" value="<? echo($row->headline) ?>"></td>
         <tr> 
      <td>Must Ship By</td>
      <td><input name="DatePicker" type="text" id="DatePicker" value="<? echo($row->DatePicker) ?>"></td>
         <tr> 
      <td>Shipping Method</td>
      <td><input name="shipMethod" type="text" id="shipMethod" value="<? echo($row->shipMethod) ?>"></td>
         <tr> 
      <td>Tracking Number</td>
      <td><input name="trackingNumber" type="text" id="trackingNumber" value="<? echo($row->trackingNumber) ?>"></td>
    </tr>
    <tr> 
      <td>Status</td>
      <td><input name="StatusCheck" type="radio" name="status" value="PROCESSING"> PROCESSING<br><input name="StatusCheck" type="radio" name="status" value="PROCESSING"> PICKED<br><input name="StatusCheck" type="radio" name="status" value="PROCESSING" value="<? echo($row->StatusCheck) ?>"> SHIPPED<br>  value="<? echo($row->StatusCheck) ?>"></td>
    </tr>
    <tr> 
      <td colspan="2"><div align="center">
          <input name="hiddenField" type="hidden" value="update">
          <input name="add" type="submit" id="add" value="Update">
        </div></td>
    </tr>
  </table>
  </form>
<?php

?>

您的$result變量為空,對其進行測試。 原因是因為您沒有設置任何數據庫名稱,您可以從中獲取信息。 粘貼此:

mysqli_select_db($con, 'your_database_name');

$con=mysqli_connect("server.com","username","password");

並且應該沒問題(當然,如果那里有任何記錄)。

您的代碼噓聲相當冗長,因此,我將舉一個較小的示例。 假設您有ID和名稱的記錄。 創建編輯/更新鏈接,將while循環更改為類似於以下內容的內容

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td><a href='editform.php?id=" . $row['ID'] . "'>Edit</a></td>";
echo "</tr>";
}

這會將編輯鏈接附加到所有行。 並按如下所示創建editform.php:

<?php

    if(isset($_POST["ID"])&&isset($_POST["name"])){
        //this is if the user is applying the edit
        $ID = $_POST["ID"];
        $name = $_POST["name"];

        //go ahead and save this detail on your db.....
    }else if(isset($_POST["ID"])){
        //this is if the user is just entering the editform from the table
        $ID = $_POST["ID"];
        $name = ;//get it from the data base with a query something like SELECT * FROM table WHERE id = $id;
    }else{
        //in case the user access this page directly
        $ID = "";
        $name = "";
    }

?>

<form method="POST" action="">
    <input type="text" name="ID" value="<?php echo $ID?>"/>
    <input type="text" name="name" value="<?php echo $name?>"/>    
    <input type="submit" />
</form>

您也可以在同一頁面上處理更新,我建議這樣做。 另外,您可以使用JavaScript創建編輯表單,但有些復雜。

暫無
暫無

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

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