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

时间:2011-11-05 14:13:10

标签: php mysql multidimensional-array count

您好我想保存一个来自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]”

如果我回复“$ data [1] [1]”;结果应该是简单的3

的var_dump($数据)
array(3){[“id”] =&gt; string(1)“1”[“value”] =&gt; string(1)“0”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“1”[“value”] =&gt; string(1)“1”[“sum”] =&gt; string(1)“3”} array(3){[“id”] =&gt; string(1)“1”[“value”] =&gt; string(1)“2”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“1”[“value”] =&gt; string(1)“6”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“2”[“value”] =&gt; string(1)“2”[“sum”] =&gt; string(1)“4”} array(3){[“id”] =&gt; string(1)“2”[“value”] =&gt; string(1)“5”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“2”[“value”] =&gt; string(1)“6”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“3”[“value”] =&gt; string(1)“2”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“3”[“value”] =&gt; string(1)“3”[“sum”] =&gt; string(1)“4”} array(3){[“id”] =&gt; string(1)“3”[“value”] =&gt; string(1)“6”[“sum”] =&gt; string(1)“1”} array(3){[“id”] =&gt; string(1)“4”[“value”] =&gt; string(1)“2”[“sum”] =&gt; string(1)“2”} array(3){[“id”] =&gt; string(1)“4”[“value”] =&gt; string(1)“4”[“sum”] =&gt; string(1)“4”}

3 个答案:

答案 0 :(得分:1)

您的查询中的问题是您将总数作为计数('值')。 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值进行排序。并且您在此处显示的结果不显示总和中返回任何0。

答案 1 :(得分:0)

你是说这个?

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

答案 2 :(得分:-2)

尝试{&amp;以及&#39;围绕数组周围的键,如编辑