簡體   English   中英

PHP:未定義的偏移量錯誤

[英]PHP: Undefined offset error

以下提供的代碼用於填充數組“數據”。

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

當我嘗試從數組中讀取數據時,會出現錯誤“Undefined offset:1”。 有趣的是,當我使用$data =而不是$data[] =填充“data”數組時,沒有錯誤,只填充了最后一行。 錯誤由行$bar = new GanttBar(..) 我試圖用一些字符串“xxx”替換$row['column3'] ,但是出現了同樣的錯誤。

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);
    }

是不是

$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);
}

我認為有一個非常基本的問題:

foreach循環在每行的$ data中創建一個新的子數組。 但是后來您的代碼試圖從$ data中的每個條目中獲取三行 - 這些行從未創建過。 因此$data[$i][1]總是空的。

您可能需要調整sql查詢以從頭開始接收正確格式的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM