<?php
include 'db.php';
$subassetcategory = $_GET["subassetcategory"];
if ($subassetcategory == "all") {
$sql = "SELECT * FROM asset_subasset";
}
else {
$sql = "SELECT * FROM asset_subasset WHERE subassetcategory = '" . $subassetcategory . "'";
}
$result = mysql_query($sql) or die(mysql_error());
if ($row = mysql_fetch_array($result)) {
echo "<table border='1'>
<tr>
<th>Asset ID</th>
<th>Subasset Category</th>
<th>Subasset Name</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
$subassetid = $row['subassetid'];
$assetid = $row['assetid'];
$subassetname = $row['subassetname'];
$subassetcategory = $row['subassetcategory'];
echo "<tr>";
echo "<td>" . $assetid . "</td>";
echo "<td>" . $subassetcategory . "</td>";
echo "<td>" . $subassetname . "</td>";
echo "<td>" . "<a href='viewassetdetail.php?subassetid=$subassetid&assetid=$assetid'>View<a/>" . "</td>";
echo "</tr>";
}
echo "</table>";
}
else {
echo "<br> No data found </br>";
}
mysql_close($connect);
?>
请帮助我,我无法弄清楚为什么此代码无法正确返回结果。它从数据库中可用的确切行中返回了少 1 行(如果结果假设有 2 行,它将只返回 1 行)。
if ($row = mysql_fetch_array($result)) {
echo "<table border='1'>
<tr>
<th>Asset ID</th>
<th>Subasset Category</th>
<th>Subasset Name</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
$subassetid = $row['subassetid'];
$assetid = $row['assetid'];
$subassetname = $row['subassetname'];
$subassetcategory = $row['subassetcategory'];
echo "<tr>";
echo "<td>" . $assetid . "</td>";
echo "<td>" . $subassetcategory . "</td>";
echo "<td>" . $subassetname . "</td>";
echo "<td>" . "<a href='viewassetdetail.php?subassetid=$subassetid&assetid=$assetid'>View<a/>" . "</td>";
echo "</tr>";
}
echo "</table>";
}
else {
echo "<br> No data found </br>";
}
mysql_close($connect);
?>
如果我刚刚编写了这段代码,它就可以完美运行。
$result = mysql_query($sql) or die(mysql_error());
echo "<table border='1'>
<tr>
<th>Asset ID</th>
<th>Subasset Category</th>
<th>Subasset Name</th>
</tr>";
while ($row = mysql_fetch_array($result)) {
$subassetid = $row['subassetid'];
$assetid = $row['assetid'];
$subassetname = $row['subassetname'];
$subassetcategory = $row['subassetcategory'];
echo "<tr>";
echo "<td>" . $assetid . "</td>";
echo "<td>" . $subassetcategory . "</td>";
echo "<td>" . $subassetname . "</td>";
echo "<td>" . "<a href='viewassetdetail.php?subassetid=$subassetid&assetid=$assetid'>View<a/>" . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($connect);
?>
但如果结果为空,我希望它显示“未找到数据”。那么,有什么帮助吗?我知道这很简单,但我已经好几天找不到答案了。预先感谢您!
最佳答案
您基本上是在 if 语句中切掉第一个结果:
if ($row = mysql_fetch_array($result))
只需检查返回的行数即可保持结果集完整:
if(mysql_num_rows($result) > 0)
关于php - 结果从数据库中可用的确切行返回减去 1(负 1)的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6435198/