2012-05-17 6 views
1

아래 제공된 코드는 "데이터"배열을 채우는 데 사용됩니다.PHP : 정의되지 않은 오프셋 오류

$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 =을 사용하는 "데이터"배열을 채우고 $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); 
    } 
+0

'var_dump' 그 배열과 너는 볼거야 ... – Niko

+0

나는 var_dump ($ data); Zend Studio를 사용하고 있습니다. var_dump의 출력은 어디서 볼 수 있습니까? 미안해, 초보자 야. 디버그 모드를 시도하고 콘솔도 살펴 보았습니다. 거기에 메시지가 없습니다. –

+0

코드를 실행하면 $ 데이터의 모양을 볼 수 있습니다. 그런 다음 요소를 반복하는 방식과 비교하십시오. – Niko

답변

3

데이터 구조는 가능한 한 단순해야, 충분한

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

되지 않습니다.

구조체를 원하면 좋습니다.

foreach는 루프는 모든 행에 대해 $ 데이터의 새로운 부분 배열을 만드는 :

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

아니요, jpGraph Gantt Chart에서 작업 중이며 특정 입력 형식이 필요합니다. 글쎄, 만약 내가 수동으로 "데이터"배열을 작성, 다음 모든 게 잘 작동합니다. –

+0

@KlausosKlausos 편집을 확인하십시오. – xdazz

+0

코드를 확인했습니다. 같은 오류 - 정의되지 않은 오프셋. –

1

나는 아주 기본적인 문제가있다 생각합니다. 하지만 나중에 코드에서 $ data의 각 항목에서 세 행을 얻으려고합니다. 따라서 $data[$i][1]은 항상 비어 있습니다.

처음부터 올바른 형식의 데이터를 받으려면 SQL 쿼리를 조정해야 할 수도 있습니다.

+0

문제는 다음 코드도 좋지 않다는 것입니다 : $ bar = new GanttBar $ i, "xxx", "2010-10-10 10:05", "2010-10-10 11:00"); count ($ data)에 문제가있을 수 있습니까? $ data = array (array (...), array (...), array (...)); –

+0

수동으로 생성 한 데이터의 예와 작업 내용을 보여줍니다. 그런 다음'print_r ($ row)'에 포함 된 것을 보여주십시오. – sprain

관련 문제