php - mysql_num_rows()返回值为0时无法进入判断?
PHP中文网
PHP中文网 2017-04-11 10:18:27
0
3
841
$arr = array();
$len = conunt($str); //$str是一个数组
for ($i = 0; $i < $len; $i++) {
    $sql = 'SELECT * FROM table where data="'.$str[$i].'"';
    $result = mysqli_query($conn, $sql);
    $num = mysqli_num_rows($result);
    echo $num;  //  str中有些数据是不存在的,不存在的会输出0
    while ($rows = mysqli_fetch_array($result, MYSQL_ASSOC)) {
        echo $num;
        if($num == 0) {
            echo 'not found';
        }
    }

}

找到原因了 , 在while循环内外输出的$num的值不一样,循环外如果数据不存在会输出0,但是在循环内却会输出1,求解。。。

PHP中文网
PHP中文网

认证0级讲师

reply all(3)
迷茫

你把前面的一些代码贴一下看看啊,这样怎么给你解答。。。

巴扎黑

mysqli_num_rows — 取得结果集中行的数目
所以如果$result中没有数据$num 就不会进入循环,这两个是矛盾的吧

巴扎黑

$num 没有自减啊。在while的循环体底部加上$num--。这样每读取一行,$num就会减1,直至等于0,输出'not found'

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template