我目前正在尝试从数据库中的多个表中读取数据,并以表格形式显示结果。
但mysqli_query()
返回true
,mysqli_fetch_row()
返回false。
$link
是已初始化的连接对象。
代码段1:
$sql = "
SELECT *
FROM users_list, user_personal_details, user_bank_details
WHERE
users_list.email = user_personal_details.email AND
users.email=userbank_details.email
LIMIT $num_rec_per_page
OFFSET $start_from";
$rs_result = mysqli_query($link, $sql);
if ($rs_result == false) {
echo "Query failed";
exit();
}
else echo "Query successful";
代码段2:
$row = mysqli_fetch_row($rs_result);
if ($row == false)
echo "Invalid";
while ($row = mysqli_fetch_row($rs_result)) {
echo "In loop";
$name = $row['name'];
$date_added = $row['date_added'];
echo $name;
echo $date_added;
}
在循环外部使用mysqli_fetch_row()
进行调试。
将打印消息查询成功。
打印消息无效。
可能是什么原因?
答案 0 :(得分:1)
你两次调用mysqli_fetch_row(),可能你会在第二次调用false
。
答案 1 :(得分:0)
可能是您的查询返回true但可能无法返回任何结果。使用mysqli_num_rows()
检查查询返回的行数。
不要两次获取行
$sql = "SELECT * FROM users_list,user_personal_details,user_bank_details where users_list.email=user_personal_details.email and users.email=userbank_details.email LIMIT $num_rec_per_page OFFSET $start_from";
$rs_result = mysqli_query($link, $sql); //run the query
if ($rs_result == false) {
echo "Query failed";
exit();
} else {
$data = mysqli_num_rows($rs_result);
if ($data > 0) {
while ($row = mysqli_fetch_row($rs_result)) {
$name = $row['name'];
$date_added = $row['date_added'];
echo $name;
echo $date_added;
}
} else {
echo "No result found";
}
}