$retval = mysqli_query($conn,"SELECT * FROM food WHERE pnrno='$pnrno'");
if ($retval) {
echo "Your food complain has been successfully fetched";
echo "<table border='1'>
<tr>
<th>Username</th>
<th>PNR Number</th>
<th>Food Complain Status</th>
</tr>";
while($row = mysqli_fetch_array($retval))
{
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['pnrno'] . "</td>";
echo "<td>" . $row['complain_status'] . "</td>";
echo "</tr>";
}
echo "</table>";
echo "\r\n";
} else {
echo "Error: " . $retval . "<br>" . mysqli_error($conn);
}
while循环中的代码没有被执行(我想是这样),“你的食物抱怨已成功获取”这条消息正在打印,表格已经形成,但是从数据库中取出后的用户名,pnrno和complain_status是没有打印在网页上。为什么会这样,请帮助。
答案 0 :(得分:3)
假设数据存在,并且您正在向查询发送正确的参数,可能的罪魁祸首就是您使用row
变量的方式。因为你没有告诉mysqli以关联方式获取数组,所以它默认为索引。
您需要将获取功能更改为:
mysqli_fetch_array($retval, MYSQLI_ASSOC)
答案 1 :(得分:0)
$retval = mysqli_query($conn,"SELECT * FROM food WHERE pnrno='$pnrno'");
if ($retval) {
如果查询成功执行,您的if
将会执行。
但是,对不存在的行的查询将成功,行数为零。
您需要检查查询返回的行数,如果没有匹配的行,则显示错误。