2017-09-02 6 views
0

私を助けることができるかどうかわかりません。私はテーブルを照会して、H軸の時間軸とカウントのV軸をグラフに取り込み、データベーステーブルのサーバーに基づいてグラフにフィルタを動的に追加しようとしています。現時点では静的です。PHPがデータベースクエリから配列にキーを追加する

I am using filters to select

iは、データベースを照会し、グラフ

$results = array(); 

    foreach(\IPS\Db::i()->select('*', 'stats', $where, 'time ASC') as $row) 
    { 
     $value = '_'.$row['server']; 
     if(!isset($results[ $row['time'] ])) 
     { 
      $results[ $row['time'] ] = array(
       'time' => $row['time'], 
       '_64' => 0, 
       '_66' => 0 
      ); 
     } 
      //$results[ $row['time'] ][$value] = 0; 
      if ($value == '_64') 
      { 
       $results[ $row['time'] ]['_64'] = $row['value_1']; 
      } 
      elseif($value == '_66') 
      { 
       $results[ $row['time'] ][ '_66' ] = $row['value_1']; 
      } 

     } 
     return $results; 

にシリーズを追加し、私がすることによって、それを動的にしようとした

$chart->addSeries('_66', 'number'); 
$chart->addSeries('_64', 'number'); 

フィルタに追加するには、次のコードを使用します行うこと

foreach(\IPS\Db::i()->query("SELECT DISTINCT server FROM stats ORDER BY server") as $row) 
    { 
     $value = '_'.$row['server']; 
     $chart->addSeries($value, 'number'); 
    } 

$value = '_'.$row['server']; 
     if(!isset($results[ $row['time'] ])) 
     { 
      $results[ $row['time'] ] = array(
       'time' => $row['time'], 
       $value => 0, 
      ); 
     } 
      $results[ $row['time'] ][$value] = $row['value_1']; 

しかし、これはどのような方法で動作しませんでした。私はim配列全体を完全に間違って追加するつもりだと思う。何か提案してください?

配列は、私はそれが最終的に動作させることに成功し、この

array (size=8) 
1504025011 => 
array (size=3) 
    'time' => int 1504025011 
    '_64' => int 2 
    '_66' => int 0 
1504094803 => 
array (size=3) 
    'time' => int 1504094803 
    '_64' => int 0 
    '_66' => int 14 

代わり

array (size=8) 
1504025011 => 
array (size=2) 
    'time' => int 1504025011 
    '_64' => int 2 
1504094803 => 
array (size=2) 
    'time' => int 1504094803 
    '_66' => int 14 

答えて

1

のようになります。最後はシンプルだった。 (通常はケース)確かに私は前にこれを試して、動作しませんでした。何かを見逃しているはずです。

このコードを使用して、キー/値を配列に追加しました。

foreach(\IPS\Db::i()->query("SELECT DISTINCT(server) AS Server FROM stats ORDER BY Server DESC;") as $rows) 
     { 
      $value = '_' .$rows['Server']; 
      $results[ $row['time'] ][$value] = 0; 
     } 
関連する問題