count while循环的每个示例的记录

icnyk63a  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(259)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
我正在尝试获取while循环的每个示例的计数。到目前为止,我所能找到的就是如何保持计数器运行,例如。

$counter = 0;
while(..) {
      $counter++; // or $counter = $counter + 1;
}

echo $counter;

我要找的是每次while循环运行时更多地计算记录的数量,所以更像这样。

while ($row = mysqli_fetch_assoc($result)) {
    $date = $row['date'];

    $sql = "SELECT COUNT(*) FROM table WHERE date = $date ";
    $r = mysqli_query($mysqli, $sql);
    $count = mysqli_num_rows($r);

    echo "There are ".$count." records for ."$date.".";

}

这是可能的吗?

c7rzv4ha

c7rzv4ha1#

您可能最好更改外部sql以一次性完成计数。。。

SELECT date, COUNT(*) as countForDate
    FROM table
    GROUP BY date

(加上你可能有的任何其他where条款)。

wwwo4jvm

wwwo4jvm2#

在一个循环中查询数据库总是一种不好的做法。
如果我理解的很好,您尝试通过一个查询获取日期,然后使用另一个查询按日期选择行。
如果不能使用join组合此查询,则可以收集日期数组,对其进行内爆,并将其与in和group by语句一起使用。

$dates = [];
while ($row = mysqli_fetch_assoc($result)) {
    $dates[] = $row['date'];
}

$in = implode("','");
$sql = "SELECT date, COUNT(*) as date_count FROM table WHERE date IN ('".$in."') GROUP BY date";

while ($row = mysqli_fetch_assoc($result)) {
    echo "There are ".$row['date_count']." records for ".$row['date'].".";
}

所以现在只有两个查询,而不是很多查询

相关问题