gpt4 book ai didi

php 计数函数未在 mysql_fetch_assoc 上显示正确的计数

转载 作者:行者123 更新时间:2023-11-29 01:24:33 26 4
gpt4 key购买 nike

我已使用此命令将 mysql_fetch_assoc 中的数据存储到数组中

if(mysql_num_rows($data) > 1){
while($row = mysql_fetch_assoc($data)){
$ndata[] = $row;
}
} else {
$ndata = mysql_fetch_assoc($data);
}

现在,当我对 $ndata 使用 count 时,它会返回 1;虽然它是空的。

当我对返回的数据运行 mysql_num_rows 时,它返回 0 行。但是当我将数据转换为 $ndata 然后运行 ​​count 时,它返回 1。我希望它返回行数。

谢谢

有人可以解释为什么会出现问题以及如何解决它吗?

最佳答案

您的逻辑是错误的:您没有测试 mysql_num_rows($data) == 0 的情况。如果是这种情况,您的代码将执行与行数为 1 时相同的路径 ($ndata = mysql_fetch_assoc($data);)。但是没有更多的行可返回(根本没有行),因此 mysql_fetch_assoc returns falsecount(false) 返回 1,因为这就是 count 的工作原理。

这样做:

$rows = mysql_num_rows($data);
if($rows == 0) {
return null;
}
else if($rows == 1){
$ndata = mysql_fetch_assoc($data);
} else {
while($row = mysql_fetch_assoc($data)){
$ndata[] = $row;
}
}

您可以在第一个 if 分支中返回 nullarray();这是 count 返回 0 的唯一两个值。

关于php 计数函数未在 mysql_fetch_assoc 上显示正确的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com