如何保存MySQL count()行到PHP数组


How to save MySQL count() row into an PHP array?

你好,我想保存一行来自MySQL数据库的"count('row1 ") AS sum",但在我的数组内,我只有空字段!

数据库查询:

"SELECT id, value, COUNT('value') AS sum FROM answer_user GROUP BY id,value"
php代码:

$result = mysql_query($query) or die(mysql_error());
while($data= mysql_fetch_assoc($result)) {
   echo"<b>{$data['id']}#{$data['value']}#{$data['sum']}#<br>";
}

但是$data[sum]是空的,里面没有数字。

和一个小但小的烦恼是,我不能排序id降序和值升序在我的查询,像值降序与我的查询phpMyAdmin说:

   id value     sum
    1   0   1
    1   1   3
    1   2   1
    1   6   1
    2   2   4
    2   5   1
    2   6   1
    3   2   1
    3   3   4
    3   6   1

我的主要目的是将它存储在一个二维数组中,如$data[id][value]="[sum]"

如果我做echo"$data[1][1]";结果应该是普通的3

var_dump(元数据)
Array (3) {["id"]=> string(1)"1" ["value"]=> string(1)"0" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"1" ["value"]=> string(1)"1" ["sum"]=> string(1)"3"} array(3) {["id"]=> string(1)"1" ["value"]=> string(1)"2" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"1" ["value"]=> string(1)"6" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"2" ["value"]=> string(1)"2" ["sum"]=> string(1)"4"} array(3) {["id"]=> string(1)"2" ["value"]=> string(1)"5" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"2" ["value"]=> string(1)"6" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"3" ["value"]=> string(1)"2" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"3" ["value"]=> string(1)"3" ["sum"]=> string(1)"4"} array(3) {["id"]=> string(1)"3" ["value"]=> string(1)"6" ["sum"]=> string(1)"1"} array(3) {["id"]=> string(1)"4" ["value"]=> string(1)"2" ["sum"]=> string(1)"2"} array(3) {["id"]=> string(1)"4" ["value"]=> string(1)"4" ["sum"]=> string(1)"4"}

查询中的问题是您使用count('value')作为sum。Mysql获取值为字符串,你应该像这样使用它。

SELECT id, value, COUNT(value) AS sum FROM answer_user GROUP BY id,value

加上

SELECT id, value, COUNT(value) AS sum FROM answer_user GROUP BY id,value order by id asc , value asc

它带来了完美的结果。order by将首先使用id进行排序,然后针对每个idwith值进行排序。这里显示的结果不显示sum中返回0

你是这个意思?

while($data= mysql_fetch_assoc($result)) {
    $array[$data['id']][$data['value']] = $data['sum'];
}

尝试将{&}以及数组周围键周围的',例如edit