0

我想确保在运行 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)) {
    }
}
4

3 回答 3

3

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

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

改成:

if( ! mysqli_num_rows($nearbyResult) ) {

并检查你的怪胎函数返回:

if( ! $nearbyResult = mysqli_query($con,$sqlNearby) ) {
    echo "Mysql error: " . mysqli_error($con);
}
于 2013-09-25T23:33:45.673 回答
1

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

于 2013-09-25T23:32:17.943 回答
1

尝试将结果分配给变量作为 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
}
于 2013-09-25T23:32:31.713 回答