2017-09-02 164 views
0

想知道您是否可以幫助我。我正在查詢一張表,用H軸時間和V軸計數填充一個圖表,並試圖根據數據庫表中的服務器動態地向圖表添加過濾器。在這一刻它的靜態。PHP從數據庫查詢中添加數組的密鑰

I am using filters to select

我用下面的代碼來查詢數據庫和系列添加到圖表

$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']; 

但這並沒有以任何方式工作。我想我會添加到陣列完全錯誤。有什麼建議嗎?

陣列應該是這樣的

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; 
     } 
相關問題