gpt4 book ai didi

php - 查询返回额外的空变量

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

在使用 SQL 调用值时,我遇到了一些奇怪的行为。

$result = mysqli_query($conn,"SELECT DISTINCT value FROM table ORDER BY value ASC");
while($row[] = mysqli_fetch_array($result));
$maxcat = count($row);

我的表中有 8 个唯一值,但 $maxcat 返回“9”。我错过了什么吗?我正在使用这些信息来填充类别列表。我知道我必须从 maxcat 中减去一个以允许 $row[0],但我必须减去两个以弥补这个不会丢失的空值。

for ($i=0; $i<=($maxcat-2); $i++)

干杯!


感谢@scrowler 和@faintsignal!使用 mysqli_num_row() 而不是 count() 正是我所需要的。下面的功能代码。

$result = mysqli_query($conn,"SELECT DISTINCT value FROM table ORDER BY value ASC");
$maxcat = mysqli_num_rows($result);
while($row[] = mysqli_fetch_array($result));

最佳答案

while 条件对查询结果中的每一行进行一次评估,再加上一次检测是否没有剩余行的额外时间。因此,如果结果中有 8 行,则 while 条件会计算 8 + 1 = 9 次。因此,您将 9 个条目添加到数组 $row,最后一个条目的值为 NULL

请注意,如果您的 while 循环有一个主体,则该主体只会迭代 8 次,因为第 9 次条件的计算结果为 false

正如@scrowler 所指出的,如果您只想计算结果中的行数,您可以简单地使用 mysqli_num_rows

关于php - 查询返回额外的空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598549/

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