Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果两个字段相同,如何使用JSON COUNT-sum对值求和_Javascript_Php_Mysql_Json - Fatal编程技术网

Javascript 如果两个字段相同,如何使用JSON COUNT-sum对值求和

Javascript 如果两个字段相同,如何使用JSON COUNT-sum对值求和,javascript,php,mysql,json,Javascript,Php,Mysql,Json,这是我的JSON文件 {"result":[ {"beer":"23","store":"1","table":"1"}, {"beer":"12","store":"1","table":"1"}, {"beer":"5","store":"1","table":"2"}]} 如果store和table字段相同,我想计算beer的总和 结果应为2条记录: beer 35, store 1 table 1 beer 5, store 1 table 2 这是我使用的MYSQL查询: $sql

这是我的JSON文件

{"result":[
{"beer":"23","store":"1","table":"1"},
{"beer":"12","store":"1","table":"1"},
{"beer":"5","store":"1","table":"2"}]}
如果store和table字段相同,我想计算beer的总和

结果应为2条记录:

beer 35, store 1 table 1
beer 5, store 1 table 2
这是我使用的MYSQL查询:

$sql = "SELECT * FROM data  ORDER BY beer DESC";
        $res = mysql_query($sql);
        $result = array();

        while( $row = mysql_fetch_array($res) )
            array_push($result, array('beer' => $row[1],
                                      'store'  => $row[2],
                                      'table' => $row[3]));

        echo json_encode(array("result" => $result));

希望您需要
分组方式

$sql = "
    SELECT sum(beer) as beer, store, table 
    FROM data 
    GROUP BY store, table  
    ORDER BY beer DESC
";

要直接从sql执行此操作,请执行以下操作:

$query=“选择总和(啤酒)作为啤酒、商店、表格 从数据 按存储、表格分组”

从json中求和:

$json_result = json_decode($json_var) ;

$result = array() ;

foreach($json_result->result as $key=>$value){
    if(!isset($result[$value->store])){
        $result[$value->store] = array() ;
        $result[$value->store][$value->table] = $value->beer ;
    }
    else if(!isset($result[$value->store][$value->table])){
        $result[$value->store][$value->table] = $value->beer ;
    }
    else{
        $result[$value->store][$value->table] += $value->beer ;
    }
}

$result will contain the json sum 

请把你的标题改成小写,你的问题是什么?@rene:
JSON
按设计是大写的,sql关键字按惯例也是大写的。所以这很好。@zerkms我对此有不同的看法…@rene:即使你有-你保留了原始单词的大写字母。这意味着你的“不同”观点与我的完全一致-D