如何在while循环之前检查php mysqli_fetch_array是否为空

时间:2013-09-25 23:26:24

标签: php

我想在运行while循环之前确保有结果,但我尝试的所有方法似乎都删除了第一个结果。

$nearbyResult = mysqli_query($con,$sqlNearby);

if(mysqli_fetch_array($nearbyResult) == 0) {
    echo '<p>No results found, <a href="/add.php">Add your property here</a>.</p>';
} else {
    while($rowNearby = mysqli_fetch_array($nearbyResult)) {
    }
}

3 个答案:

答案 0 :(得分:3)

此行将获取结果集的第一行并将其放入bin:

if(mysqli_fetch_array($nearbyResult) == 0) {

更改为:

if( ! mysqli_num_rows($nearbyResult) ) {

检查你的freakin函数返回:

if( ! $nearbyResult = mysqli_query($con,$sqlNearby) ) {
    echo "Mysql error: " . mysqli_error($con);
}

答案 1 :(得分:2)

您可以使用mysql_row_count方法计算查询中返回的行数http://php.net/manual/en/mysqli-result.num-rows.php

答案 2 :(得分:0)

尝试将结果作为if语句的一部分分配给变量。如果mysqli_fetch_array()没有结果集可以使用它将返回false。

if($rowNearby = mysqli_fetch_array($nearbyResult)) {
    //There was a result, work with it here
    doStuffWith($rowNearby);
} else {
    //No records in your result set, handle as desired
}