$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,求解。。。
你把前面的一些代码贴一下看看啊,这样怎么给你解答。。。
mysqli_num_rows — 取得结果集中行的数目
所以如果$result中没有数据$num 就不会进入循环,这两个是矛盾的吧
$num 没有自减啊。在while的循环体底部加上
$num--
。这样每读取一行,$num就会减1,直至等于0,输出'not found'