【发布时间】:2021-01-28 16:21:08
【问题描述】:
通过反馈调查,他们可以选择差、中性或好。我想把坏的和好的编译成一个表。 我正在尝试从 ajax 请求创建一个计数“表”输出以替换 div 内容。 理想情况下,它看起来像:
| Experience | Negative | Positive |
|---|---|---|
| Cleanliness | 12 | 18 |
| Check-In/Out | 4 | 30 |
| Food | 2 | 12 |
| Staff | 1 | 8 |
所以我的mysql有清洁度、食物等列。里面是负面/中性/正面的评级。
我曾想过使用单个 php 脚本来填充表格,但到目前为止我想出了这个:
我做了两个查询:
$pos = $pdo->query("SELECT COUNT(IF(Cleanliness = 'positively', 1, NULL)) AS Cleanliness,
COUNT(IF(Check-In/Out = 'positively', 1, NULL)) AS Check-In/Out,
COUNT(IF(Food = 'positively', 1, NULL)) AS Food,
COUNT(IF(Staff = 'positively', 1, NULL)) AS Staff
FROM responses");
$neg = $pdo->query("SELECT COUNT(IF(Cleanliness = 'negatively', 1, NULL)) AS Cleanliness,
COUNT(IF(Check-In/Out = 'negatively', 1, NULL)) AS Check-In/Out,
COUNT(IF(Food = 'negatively', 1, NULL)) AS Food,
COUNT(IF(Staff = 'negatively', 1, NULL)) AS Staff
FROM responses");
然后获取它们:
$positives = $pos->fetch(PDO::FETCH_ASSOC);
$negatives = $neg->fetch(PDO::FETCH_ASSOC);
现在,它们已排列,但如何将它们组合到输出中?我不能 Key => Value => Value 对吗?
foreach (array_combine($positives, $negatives) as $pos => $neg) {
echo "$neg - $pos <br>";
}
所以我得到了我的否定和肯定,但现在没有行“标题”。 如果我只是输出数组,我可以得到行标题,但只能得到一个计数。
我是否应该放弃尝试在单个脚本中组合并创建一个“通用”脚本并发布列以及仅针对单个计数输出的所需响应?这将是很多 ajax 查询访问同一个 php 脚本。
谢谢!
SQL 小提琴,不知道如何让右侧做我的 php 对 PDO 所做的事情。 http://sqlfiddle.com/#!9/37c0c2e/7
【问题讨论】:
-
可以通过单个查询完成。你能创建一个 SQL 小提琴吗?