我想知道如何确定从MySQL检索数据的while循环不返回任何结果。这是我的代码,请看一下:
<?php
function getAdmins(){
global $con;
global $id;
$get_admin = "select * from admins where id != $id";
$run_admin = mysqli_query($con,$get_admin);
while($row_admin = mysqli_fetch_array($run_admin)){
$id_admin = $row_admin['id'];
$username_admin = $row_admin['username'];
$fname_admin = $row_admin['fname'];
$lname_admin = $row_admin['lname'];
$email_admin = $row_admin['email'];
echo '....';
}
}
在进入while循环集$loopExecuted = false;
之前然后在循环集合$loopExecuted = true;
内循环之后,您可以检查变量,查看while循环是否至少有一次迭代。
使用mysqli_num_rows($run_admin)计算行数;
<?php
function getAdmins(){
global $con;
global $id;
$get_admin = "select * from admins where id != $id";
$run_admin = mysqli_query($con,$get_admin);
if (mysqli_num_rows($run_admin) > 0) {
while($row_admin = mysqli_fetch_array($run_admin)){
$id_admin = $row_admin['id'];
$username_admin = $row_admin['username'];
$fname_admin = $row_admin['fname'];
$lname_admin = $row_admin['lname'];
$email_admin = $row_admin['email'];
echo '....';
}
}
} else {
echo 'empty data';
}
}
$results = array();
while($row_admin = mysqli_fetch_array($run_admin)){
results[] = $row_admin;
}
if (empty($results)) {
echo 'Empty, no results';
}
检测找到的行数。
$get_admin = "select * from admins where id != $id";
$run_admin = mysqli_query($con, $get_admin);
// Count of rows found
$num_rows = mysqli_num_rows($run_admin);
if($num_rows > 0){
while($row_admin = mysqli_fetch_array($run_admin)){
$id_admin = $row_admin['id'];
$username_admin = $row_admin['username'];
$fname_admin = $row_admin['fname'];
$lname_admin = $row_admin['lname'];
$email_admin = $row_admin['email'];
echo '....';
}
}
else{
// Nothing returned
}
$run_admin只是一个mysqli_result对象,如果不返回任何内容,它将为空。。。
所以我们可以使用以下
if(empty($run_admin))
{
//Nothing returned
}
或者,mysqli_num_rows()
做基本上相同的事情,但显式地查看mysqli_result对象的$num_rows
属性
if(mysqli_num_rows($run_admin) == 0)
{
//Nothing returned
}
后者可能更清楚,因为很明显,我们说的是"如果什么都没有返回",而不是"如果没有结果"——尽管两者的结果是相同的,但如果有人稍后阅读代码,mysqli_num_rows更具描述性。