gpt4 book ai didi

php - MySQL 在 while 循环中显示 1 个结果...但是他们实际上是 2 个结果?

转载 作者:行者123 更新时间:2023-11-29 06:19:35 25 4
gpt4 key购买 nike

我最近将 2 个查询合并为 1 个(以优化性能)...1 个查询用于检查计数,另一个用于检查结果,计数是为了确保它们是实际结果,然后再继续循环。

这是 PHP 代码:

<?php

$query = 'SELECT id, title, COUNT(id) FROM submissions ORDER BY sub_time DESC LIMIT 50';

$result = mysql_query($query);

$count = mysql_result($result, 0, 2);

mysql_data_seek($result, 0); //mysql_result resets the internal pointer...

if ($count > 0) {
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;

//etc..

}
}


?>

问题是它现在返回 1 个结果? - 当他们实际上有 2 个结果时(正如我通过 PHPMyAdmin 检查以及运行以下代码 - 见下文),我已经缩小了问题范围,因为 COUNT(id) 已与初始结果查询相结合;它的行为是这样的。

因为如果我执行以下操作:

<?php

$query = 'SELECT id, title FROM submissions ORDER BY sub_time DESC LIMIT 50';

$result = mysql_query($query);

$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;

//etc..

}

?>

它返回 2 个结果...

所以我的问题是如何解决这个问题并实现我想要的目标?

最佳答案

我建议您删除 COUNT(id) 并使用 mysql_num_rows()函数在尝试循环之前检查返回了多少行。

您的代码可能如下所示:

<?php

$query = 'SELECT id, title FROM submissions ORDER BY sub_time DESC LIMIT 50';

$result = mysql_query($query);

$count = mysql_num_rows($result);

if ($count > 0) {
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;

//etc..

}
}

关于php - MySQL 在 while 循环中显示 1 个结果...但是他们实际上是 2 个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559191/

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