你好,我想保存一行来自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