下一次迭代

时间:2013-07-25 16:57:16

标签: php

我在这里遇到一些显示问题。

我有一个“backend.php”文件,我要求输入两个。 这些输入由“Addproducts.php”文件处理,此文件重定向到backend.php。

Backend.php还会显示数据库中的当前记录。

这是backend.php的代码

<html>
<head>
<title>Inventory - Backend</title>

</head>
<body>

<form action="addproducts.php" method="post">
<table>
<tr>
<td>Product Name : </td>
<td><input type="text" name="pname"/></td>
</tr>
<tr>
<td>Product Quantity : </td>
<td><input type="text" name="productq"/></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td><input type="submit" name="Add Product"/></td>
</tr>
</table>
</form>

<h2>Current Products</h2>
<?php
$db = mysql_connect('127.0.0.1', 'root', '') or die ('Unable to Connect.Check your connection parameters');
mysql_select_db('stock_inventory', $db) or die (mysql_error($db));
$query = 'SELECT * FROM PRODUCTS';
$result = mysql_query($query, $db) or die (mysql_error($db));
echo '<table>';
echo '<tr>';
echo '<th>Product ID </th>';
echo '<th>Producr Name </th>';
echo '<th>Product Stock </th>';
echo '</tr>';
while($row = mysql_fetch_assoc($result))
{
if(mysql_num_rows($result) > 0)
{

echo '<tr>';
echo '<td>' . $row['product_id'] . '</td>';
echo '<td>' . $row['product_name'] . '</td>';
echo '<td>' . $row['product_stock'] . '</td>';
echo '</tr>';
echo '<br/>';
echo '</table>';
}
else
{
echo "No products in the database";
}
}
?>

</body>
</html>

它显示如下: -

Product ID  Producr Name    Product Stock
1           NewProduct  1
2HTC One5
3Samsung10
4Sony10
你知道吗? 只有第一个产品是对齐的,其余的不是。

如何使它们全部对齐?

感谢。

2 个答案:

答案 0 :(得分:2)

原因是你正在关闭循环中的table标记,将其移到循环之外,如下所示:

while($row = mysql_fetch_assoc($result))
{
  if(mysql_num_rows($result) > 0)
  {
     echo '<tr>';
     echo '<td>' . $row['product_id'] . '</td>';
     echo '<td>' . $row['product_name'] . '</td>';
     echo '<td>' . $row['product_stock'] . '</td>';
     echo '</tr>';
  }
  else
  {
    echo "No products in the database";
  }
}
echo '<br/>';
echo '</table>';

更新:更好的解决方案(见下面Barmar的评论):

if (empty(mysql_num_row($result))) {
  echo "<tr><td colspan='3'>No products in the database</td></tr>";
} else {
  while($row = mysql_fetch_assoc($result)) {
    echo '<tr>';
    echo '<td>' . $row['product_id'] . '</td>';
    echo '<td>' . $row['product_name'] . '</td>';
    echo '<td>' . $row['product_stock'] . '</td>';
    echo '</tr>';
  }
}
echo '</table>';

同时开始研究使用mysqlihttp://php.net/manual/en/book.mysqli.php)或PDOhttp://php.net/manual/en/book.pdo.php),mysql_已被弃用!

答案 1 :(得分:0)

我建议删除

  

<br/>

从你的表内。我相信将标记放在表标记内的换行符会破坏布局。