【发布时间】:2016-01-18 13:05:32
【问题描述】:
我一直在关注一个在线教程来构建一个从 sql 表计算结果的测验。
测验当前的工作方式是根据表中每个类别出现的频率创建一个字符串,但我想尝试并做的是用最常出现的单个类别填充字符串。
谁能帮我实现这个目标?
到目前为止我的代码:
$query = "SELECT result FROM quiz_key WHERE question IN ('$Q1','$Q2','$Q3','$Q4','$Q5','$Q6','$Q7','$Q8','$Q9','$Q10')";
$result = mysql_query($query);
$cat_a = $cat_b = $cat_c = $cat_d = $cat_e = $cat_f = 0;
while($row = mysql_fetch_array($result)) {
$cat = $row['category'];
if ($cat == "A") {
$cat_a += 1;
} elseif ($cat == "B") {
$cat_b += 1;
} elseif ($cat == "C") {
$cat_c += 1;
} elseif ($cat == "D") {
$cat_d += 1;
} elseif ($cat == "E") {
$cat_e += 1;
} elseif ($cat == "F") {
$cat_f += 1;
}
}
$array = array('A' => $cat_a, 'B' => $cat_b, 'C' => $cat_c, 'D' => $cat_d, 'E' => $cat_e, 'F' => $cat_f);
$str = "";
然后是这个:
foreach ($array as $i => $value) {
if ($value >= 6) {
$str = $i;
break;
} elseif ($value >= 3) {
$str .= $i;
}
}
$var = sort($str);
任何帮助将不胜感激。
【问题讨论】:
-
虽然我发现了许多其他关于在数据库中查找最常见值的帖子,但我不明白如何处理这些信息,因此寻求帮助。
-
你可以尝试使用
SELECT result, count(result) FROM quiz_key WHERE question IN ('$Q1','$Q2','$Q3','$Q4','$Q5','$Q6','$Q7','$Q8','$Q9','$Q10'),然后你可以搜索最大的数字,所以有最常见的 -
@lino 除了工作之外还需要一个 group by ;)
-
@nixoschu 啊是的,我忘了 :)