gpt4 book ai didi

php - mysql 表上的双重迭代

转载 作者:行者123 更新时间:2023-11-29 05:10:46 24 4
gpt4 key购买 nike

我正在尝试显示已提交调查的唯一日期,并将响应放在好、好、一般或差的行中。我不确定这段代码有什么问题,但它只返回最近的日期。就像这样

SurveyDate | Great | Good | Fair | Bad
2016-09-26 | 34 | 12 | 22 | 5
2016-08-24 | 10 | 5 | 12 | 3

<?php
$w = "select distinct(datetime) from clientsurvey order by datetime desc";
$zx = mysql_query($w);
if (mysql_num_rows($zx) < 1) {
echo "<tr><td colspan='5' style='text-align:center; color:#ff0000'>No survey records</td></tr>";
}
$great = 0;
$good = 0;
$fair = 0;
$bad = 0;
while ($z = mysql_fetch_array($zx)) {
$uniquedate = $z['datetime'];
$xx = "select * from clientsurvey where datetime like '%$uniquedate%'";
$zz = mysql_query($xx);
while ($zx = mysql_fetch_array($zz)) {
$clientrating = $zx['clientrating'];
$datetime = $zx['datetime'];
if ($clientrating === "Bad") {
$bad++;
}
if ($clientrating === "Fair") {
$fair++;
}
if ($clientrating === "Good") {
$good++;
}
if ($clientrating === "Great") {
$great++;
}
}
echo "<tr><td>$uniquedate</td><td>$great</td><td>$good</td><td>$fair</td><td>$bad</td></tr>";
$great = 0;
$good = 0;
$fair = 0;
$bad = 0;
}
?>

最佳答案

您实际上可以使用数据透视查询在 MySQL 中直接处理此问题:

SELECT datetime AS SurveyDate,
SUM(CASE WHEN clientrating = 'Great' THEN 1 END) AS Great,
SUM(CASE WHEN clientrating = 'Good' THEN 1 END) AS Good,
SUM(CASE WHEN clientrating = 'Fair' THEN 1 END) AS Fair,
SUM(CASE WHEN clientrating = 'Bad' THEN 1 END) AS Bad
FROM clientsurvey
GROUP BY datetime

PHP代码:

$query = "SELECT datetime AS SurveyDate,".
"SUM(CASE WHEN clientrating = 'Great' THEN 1 END) AS Great,".
"SUM(CASE WHEN clientrating = 'Good' THEN 1 END) AS Good,".
"SUM(CASE WHEN clientrating = 'Fair' THEN 1 END) AS Fair,".
"SUM(CASE WHEN clientrating = 'Bad' THEN 1 END) AS Bad".
"FROM clientsurvey".
"GROUP BY datetime";
$result = mysql_query($query);
echo "datetime, bad, fair, good, great";
while ($row = mysql_fetch_array($result)) {
$datetime = $row['datetime'];
$bad = $row['Bad'];
$fair = $row['Fair'];
$good = $row['Good'];
$great = $row['Great'];
echo $datetime.", ".$bad.", ".$fair.", ".$good.", ".$great;
}

关于php - mysql 表上的双重迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39702085/

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