使用PHP从MySQL表中提取数据

时间:2016-06-05 11:52:57

标签: php mysql mysqli

我正在尝试从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

2 个答案:

答案 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的答案。