我正在尝试从mysql中提取数据。我有一些查询看起来像SELECT q1, COUNT(*) FROM results GROUP BY q1
,结果我期待这样的事情:
q1 COUNT(*)
0 7
1 1
2 4
3 1
它适用于phpMyAdmin工作流程,但是如果我尝试从我的pagename.php文件重复此查询,那我就失败了。
$q1_ans = mysqli_query($link, "SELECT q1, COUNT(*) FROM results GROUP BY q1");
$q1_arr = mysqli_fetch_assoc($q1_ans);
foreach($q1_arr as $key => $value) {
echo "<br>$key is at $value";
}
结果我有
q1为0 COUNT(*)为7
我怎样才能让数组看起来像这样?
0 is at 7
1 is at 1
2 is at 4
3 is at 1
答案 0 :(得分:3)
您可以直接在查询中执行此操作:
"SELECT CONCAT(q1,' is at ',COUNT(*)) as YourName
FROM results GROUP BY q1"
这会将它们作为一个字段返回。
答案 1 :(得分:1)
mysqli_fetch_assoc()
从数据库中获取一行。您必须重复它,直到没有更多数据:
$q1_ans = mysqli_query($link, "SELECT q1, COUNT(*) FROM results GROUP BY q1");
while ($q1_arr = mysqli_fetch_assoc($q1_ans)) {
foreach($q1_arr as $key => $value) {
echo "<br>$key is at $value";
}
}
这解决了您只获得一个结果的问题。要修复输出,请参阅@ sagi的答案。