在PHP / HTML表中显示SQL表

时间:2014-04-13 06:13:39

标签: php html sql mysqli html-table

我试图通过PHP将我的SQL表填充到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

?>

2 个答案:

答案 0 :(得分:0)

您的$result变量为空,请测试一下。 原因是因为您没有设置任何数据库名称,您可以从中获取信息。 粘贴这个:

mysqli_select_db($con, 'your_database_name');

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

它应该没问题(当然,如果你有任何记录)。

答案 1 :(得分:-1)

你的代码很长,所以,我将采取一个较小的例子。 我们假设你有一个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创建编辑表单,但也有一些复杂性。