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[] =时,没有错误,只是填充了最后一行。错误是由 line 产生的$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

Isn't

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

just enough, data structure should be as simple as possible.

Ok, if you want that structure.

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

Then

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 中的每个条目中获取三行 - 这从未创建过。因此$data[$i][1]总是空的。

您可能需要调整您的 sql 查询以从一开始就以正确的格式接收数据。

于 2012-05-17T09:36:06.300 回答