0

あなたが私を助けることができるかどうか疑問に思います。H 軸の時間と V 軸のカウントを使用してグラフを作成するためにテーブルをクエリしています。データベース テーブルのサーバーに基づいてグラフにフィルタを動的に追加しようとしています。現時点では静的です。

フィルタを使用して選択しています

次のコードを使用してデータベースにクエリを実行し、シリーズをグラフに追加します

$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
4

1 に答える 1