PHP:从MySQL查询表中获取两个数组

时间:2014-03-31 16:46:17

标签: php mysql json

我从MySQL捕获以下数据:

table

使用PHP,我想组织两个数组中的数据:'pagamentos''recebimentos',按'mes'排序到JSON对象中。类似的东西:

{ name: 'Recebimentos', data: [0.00, 11970.99, 2888.0]}, 
{ name: 'Pagamentos', data: [400.00, 6877.00, 500.00]}

我有:

$rows = $result->fetchAll(PDO::FETCH_ASSOC);

$recebimentos=array();
$pagamentos=array();

        foreach ($rows as $key) {
        if($key['fluxo']=='Recebimentos'){
            array_push($recebimentos, floatval($key['atual']));
        } elseif($key['fluxo']=='Pagamentos'){
            array_push($pagamentos, floatval($key['atual']));
        }
    };

        echo json_encode(array(
            'recebimentos' => array(name=> 'name', data=>$recebimentos),
            'pagamentos' => array(name=> 'name', data=>$pagamentos),
        ));

但这又回来了:

{"recebimentos":{"name":"name","data":[0,11970.99,2888]},"pagamentos":{"name":"name","data":[400,6877,500]}}

2 个答案:

答案 0 :(得分:2)

有两个地方需要更改 - $key['real']应为$key['atual']$key['actual']。不确定是否存在复制粘贴错误,或者该列是否实际命名为atual:

    foreach ($rows as $key) {
        if($key['fluxo']=='Recebimentos'){
            $recebimentos[]=$key['atual'];
        } elseif($key['fluxo']=='Pagamentos'){
            $pagamentos[]==$key['atual'];
        }
    };

当您指定编码数据的名称时,您需要实际名称,而不是'name'

    echo json_encode(array(
        array(name=> 'recebimentos', data=>$recebimentos),
        array(name=> 'pagamentos', data=>$pagamentos)
    ));

答案 1 :(得分:1)

替换

    foreach ($rows as $key) {
        if($key['fluxo']=='Recebimentos'){
            $recebimentos[]=$key['real'];
        } elseif($key['fluxo']=='Pagamentos'){
            $pagamentos[]==$key['real'];
        }
    };

通过

    foreach ($rows as $key) {
        if($key['fluxo']=='Recebimentos'){
            $recebimentos[] = $key['actual']; // 'actual', not 'real'
        } elseif($key['fluxo']=='Pagamentos'){
            $pagamentos[] = $key['actual']; // just 1 '=' and 'actual', not 'real'
        }
    };