2014-03-31 167 views
1

我从MySQL捕获以下数据:PHP:从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]}} 
+0

它看起来好像数据并没有进入recebimentos和pagamentos数组。你确定这个'$ recebimentos [] = $ key ['real'];'是你想要的吗?难道这不是'$ recebimentos [] = $ key ['atual'];'? – larsAnders

+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

更换

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' 
     } 
    }; 
+0

对不起,我上面有一个错字,请看我编辑的问题。谢谢 –