1

以下に示すコードは、配列「データ」を埋めるために使用されます。

$query1="SELECT * FROM tab1, tab2 WHERE tab1.column1=tab2.column2;";
    $result1=DatabaseConnector::ExecuteQueryArray($query1);
    $data = array();
    $i = 0;
    foreach ($result1 as $row):
        $data[] = array(
            array($i,array("xxx",' EE112',$row['column3'],'FT445'),"2004-03-01 10:00","2004-03-01 14:00"));
        $i++;
    endforeach;

配列からデータを読み取ろうとすると、「未定義のオフセット: 1」というエラーが発生します。$data =面白いことに、 and notを使用して「データ」配列を埋めたとき$data[] =、エラーはなく、最後の行だけが埋められました。エラーは行によって生成されます$bar = new GanttBar(..)$row['column3']何らかの文字列「xxx」で置き換えようとしましたが、同じエラーが発生しました。

for($i=0; $i<count($data); ++$i) {
        $bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3]);
        $graph->Add($bar);
    }
4

2 に答える 2

3

ではない

$data[] = array("xxx",' EE112',$row['column3'],'FT445',"2004-03-01 10:00","2004-03-01 14:00");

データ構造はできるだけ単純にする必要があります。

わかりました、その構造が必要な場合。

$data[] = array(array("xxx",' EE112',$row['column3'],'FT445'),"2004-03-01 10:00","2004-03-01 14:00");

それで

foreach($data as $i => $var) {
    $bar = new GanttBar($i, $var[0], $var[1], $var[2]);
    $graph->Add($bar);
}
于 2012-05-17T09:22:47.767 に答える
1

非常に基本的な問題があると思います:

foreach ループは、行ごとに $data に新しいサブ配列を作成しています。しかし後で、コードは $data の各エントリから 3 つの行を取得しようとしますが、これは作成されていません。したがって$data[$i][1]、常に空です。

最初から正しい形式でデータを受け取るには、SQL クエリを調整する必要がある場合があります。

于 2012-05-17T09:36:06.300 に答える