gpt4 book ai didi

php - 如何计算一个值在 MySQL 列中出现的次数?

转载 作者:行者123 更新时间:2023-11-30 23:05:12 26 4
gpt4 key购买 nike

我有一个名为 Reports 的 MySQL 表,其中有一个名为 Status 的列。这被设置为打开、待定或关闭。我需要能够计算分别有多少报告设置为“打开”、“关闭”和“待处理”。我还需要将这些数字放入单独的变量中,以便在图表中使用。

我在网站上使用 PDO,可以轻松地添加、编辑和检索数据,但我终究无法使它正常工作。我发现 PDO 非常困惑且难以学习,因为在我可以在网上找到的所有示例中,每个人似乎都使用完全不同的格式、语法和变量名。我不知道我是否走在正确的轨道上。这是我到目前为止的想法;

try {
$DBH = new PDO("mysql:host=localhost;dbname=$dbname",$dbuser,$dbpass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$STH = $DBH->prepare("SELECT status, COUNT(*) FROM reports GROUP BY status");
$result = $STH->fetch();
}
catch(PDOException $e) {
echo $e->getMessage();
}

我没有收到任何错误或任何东西。我该如何解决这个问题?

作为一个额外的功能,我希望能够只计算在特定日期之间提交的条目的值。我在数据库中已有一个日期列。

我走在正确的轨道上吗?完全关闭?我可以使这项工作对直接的 MySQL 查询没有问题,但对 PDO 则不行。

最佳答案

我认为您错过了 execute() 命令?您可能还想使用 fetchAll 而不是 fetch 来获取所有内容。

try {
$DBH = new PDO("mysql:host=localhost;dbname=$dbname",$dbuser,$dbpass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$STH = $DBH->prepare("SELECT status, COUNT(*) AS count FROM reports WHERE date_field BETWEEN :start_date AND :end_date GROUP BY status");
$STH->execute(array(':start_date' => $start_date_variable, ':end_date' => $end_date_variable));


$rows = $STH->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
echo $row['status'] . " = " . $row['count'];
}

}catch(PDOException $e) {
echo $e->getMessage();
}

您认为您目前实际上并未在运行查询?有一段时间没有使用 PDO,所以可能是错误的,但试一试..

关于php - 如何计算一个值在 MySQL 列中出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202661/

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