2013-07-25 76 views
1

我在这里有一些显示问题。下一次迭代

我有一个“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 

你明白吗? 只有第一个产品是对齐的,其余的不是。

如何让它们全部对齐?

谢谢。

+0

我编辑的问题,使输出显示为代码块;不过,我无法弄清楚它是否正确显示错误。 – andrewsi

+0

关闭你的表格*在循环之外。 – brbcoding

回答

0

我建议你表中移除

<br/>

。我认为在表格标记内部放置诸如换行符之类的标记会破坏布局。

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

此外'mysql_num_rows'检查不属于循环。 – Barmar

+0

这帮了我,谢谢vinod。 – user2619381

+0

@Barmar,真的。我已经添加了更好的修复程序,我想:) – vee