result_category中有三个“BC”,但我只得到1个结果。这是一个人格测验。请帮忙。我也试过$ query =“SELECT result FROM quiz_map where result_category ='BC'”;但仍然只有1个结果显示出来。
$result = mysqli_query($link, $query);
$cat_a = $cat_b = $cat_c = $cat_d = $cat_e = 0;
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$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;
}
}
$array = array('A' => $cat_a, 'B' => $cat_b, 'C' => $cat_c, 'D' => $cat_d, 'E' => $cat_e);
$str = '';
foreach ($array as $i => $value) {
if ($value >= 6) {
$str = $i;
break;
} elseif ($value >= 2) {
$str .= $i;
}
}
$var = sort($array);
$query = "SELECT result FROM quiz_map where result_category = '$str' LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
echo $row[0];
?>
答案 0 :(得分:1)
你的代码有很多问题!
正如 @IsThisJavascript
和@Cashbee
:
LIMIT 1
语句执行查询,它只会返回一个记录。我自己指出:
echo $row[0]
的结果会有相同的结果吗? 正如 @IsThisJavascript
指出的那样:
while($row = mysqli_fetch_array($result)){ echo $row['result_category']; }
'='
切换为'%like%'
语句,以便在想要获得partionaly汇总字符串的值时最大化结果。