pdo - 如何使用 PDO 将我的 MySQL Case When 语句插入 PHP,以便我可以将输出添加到我的柱形图中
问题描述
我正在制作一个柱形图,并希望将我的 MySQL Case When Statement 的值添加到图表中。但是,我需要帮助才能使用 PDO 在 PHP 中编写语句,以便将其集成到我的应用程序的柱形图中。如何使用 PDO 将 Case When 语句写入 PHP?
SELECT
COUNT(CASE WHEN tbl_projects.projsector = 'Agriculture' THEN 1 END) AS `AG`,
COUNT(CASE WHEN tbl_projects.projsector = 'Building Construction' THEN 1 END) AS `BC`,
COUNT(CASE WHEN tbl_projects.projsector = 'Health' THEN 1 END) AS `HT`,
COUNT(CASE WHEN tbl_projects.projsector = 'Education' THEN 1 END) AS `ED`,
COUNT(CASE WHEN tbl_projects.projsector = 'Water Supply' THEN 1 END) AS `WS`,
COUNT(CASE WHEN tbl_projects.projsector = 'Income Generation' THEN 1 END) AS `IG`,
COUNT(tbl_projects.projsector) AS 'Total SEctors',
concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Agriculture' THEN 1 END)/COUNT(tbl_projects.projsector) * 100 )) AS '% AG',
concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Building Construction' THEN 1 END)/COUNT(tbl_projects.projsector) * 100)) AS '% BC',
concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Health' THEN 1 END)/COUNT(tbl_projects.projsector) * 100)) AS '% HT', concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Education' THEN 1 END)/COUNT(tbl_projects.projsector) * 100 )) AS '% ED',
concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Water Supply' THEN 1 END)/COUNT(tbl_projects.projsector) * 100)) AS '% WS',
concat(round(COUNT(CASE WHEN tbl_projects.projsector = 'Income Generation' THEN 1 END)/COUNT(tbl_projects.projsector) * 100)) AS '% IG'
FROM tbl_projects
我的预期结果应该是这样的
AG BC HT ED WS IG TotalSEctors %AG %BC %HT %ED %WS %IG
2 1 0 2 3 0 8 25 13 0 25 38 0
先感谢您
解决方案
感谢所有试图为我的问题提供帮助的人。我终于解决了我的问题。我将在下面发布我使用的代码。
现在我的图表需要两个方面的值。第一个是从 AG 到 IG 的正常 COUNT 值,第二个是从 %AG 到 %IG 看到的百分比值。
AG BC HT ED WS IG TotalSEctors %AG %BC %HT %ED %WS %IG
2 1 0 2 3 0 8 25 13 0 25 38 0
为了从表中生成这些值,我在网上挖掘并找到了一些关于如何使用 PDO Prepared Statement 在 MySQL 中对值进行计数的代码。在研究了代码之后,我能够编写如下所示的代码
<?php
//database connection
include('Connections/db.php');
//create a function for count
function rowCount($connect,$query){
$stmt = $connect->prepare($query);
$stmt->execute();
return $stmt->rowCount();
}
?>
使用这行代码,我能够计算记录,然后生成百分比。
<h1> Agriculture = `<?php echo (rowCount($connect,"SELECT projsector AS '% AG' FROM
tbl_projects WHERE projsector = 'Agriculture' ") / rowCount($connect,"SELECT
projsector FROM tbl_projects ")) * 100; ?>` </h1>
<h1> Building Construction = `<?php echo (rowCount($connect,"SELECT projsector AS '%
AG' FROM tbl_projects WHERE projsector = 'Building Construction' ") /
rowCount($connect,"SELECT projsector FROM tbl_projects ")) * 100; ?> </h1>
<h1> Health = `<?php echo (rowCount($connect,"SELECT projsector AS '% AG' FROM
tbl_projects WHERE projsector = 'Health' ") / rowCount($connect,"SELECT projsector
FROM tbl_projects ")) * 100; ?>` </h1>
<h1> Education = `<?php echo (rowCount($connect,"SELECT projsector AS '% AG' FROM
tbl_projects WHERE projsector = 'Education' ") / rowCount($connect,"SELECT
projsector FROM tbl_projects ")) * 100; ?>` </h1>
<h1> Water Supply = `<?php echo (rowCount($connect,"SELECT projsector AS '% AG' FROM
tbl_projects WHERE projsector = 'Water Supply' ") / rowCount($connect,"SELECT
projsector FROM tbl_projects ")) * 100; ?>` </h1>
<h1> Income Generation = `<?php echo (rowCount($connect,"SELECT projsector AS '% AG'
FROM tbl_projects WHERE projsector = 'Income Generation' ") /
rowCount($connect,"SELECT projsector FROM tbl_projects ")) * 100; ?>` </h1>
输出
Agriculture = 25%
Building Construction = 12.5%
Health = 0%
Education = 25%
Water Supply = 37.5%
Income Generation = 0%
对于没有百分比的正常 COUNT 值,我使用这些代码
Agriculture = <?php echo rowCount($connect,"SELECT projsector AS '% AG' FROM
tbl_projects WHERE projsector = 'Agriculture' "); ?>
Building Construction = <?php echo rowCount($connect,"SELECT projsector AS '% BC'
FROM tbl_projects WHERE projsector = 'Building Construction' "); ?>
Health = <?php echo rowCount($connect,"SELECT projsector AS '% HT' FROM tbl_projects
WHERE projsector = 'Health' "); ?>
Education = <?php echo rowCount($connect,"SELECT projsector AS '% ED' FROM
tbl_projects WHERE projsector = 'Education' "); ?>
Water Supply = <?php echo rowCount($connect,"SELECT projsector AS '% WS' FROM
tbl_projects WHERE projsector = 'Water Supply' "); ?>
Income Generation = <?php echo rowCount($connect,"SELECT projsector AS '% IG' FROM
tbl_projects WHERE projsector = 'Income Generation' "); ?>
我相信有人会发现这些有用
推荐阅读
- django - Django:如何检查内联操作是否已执行?
- scikit-learn - 为什么 LogisticRegression 和 MLPClassifier 不产生相同的结果?
- r - 错误路径 245 在随机森林中被忽略
- python - 如何在 matplotlib 中的轴旁边有一个栏?
- c - 为什么编码器将结构指针的值分配给静态结构?
- google-sheets - 你能在一个单元格中找到一个值,如果它在单元格中但它是单元格中的最后一个值或唯一值,则返回“n/a”吗?
- python - python请求lib和Flask中的重定向问题
- c++ - GCC 在执行 static_cast 到 void 指针引用时将引用转换为临时引用
- c# - 如何在 C# 中使用正则表达式解析重复的名称-值对
- macos - http-server:如何禁用 .wasm 文件的字符集?