2011-11-20 3 views
0

에 앞서 내부 포인터를 이동 (첫 번째 행은 열입니다) 배열 :나는 다음과 같은 형태의 테이블이로 MYSQL_ASSOC

$sectionscope = Array('bananas', 'apples'); 

$sections = mysql_query("SELECT section FROM table WHERE col1=val AND col2=val2"); 

if (mysql_num_rows($sections)) { 

    $i = 0; 

    while ($row = mysql_fetch_array($sections)) { 

     if (in_array($row[$i], $sectionscope)) { 

      $section = $sectionscope[array_search($row[$i], $sectionscope)]; 

      $section_is_valid = 1; 

     } 

     $i++; 

    } 

} 

I 에코 $ 행 [$ 1]을 사용하는 동안의 루프로부터의 출력 에코 경우 내게 준다 : bananas

PHPmyad에서 선택을하는 분 잘 작동합니다.

내가 여기서 잘못하고있는 걸 말해 줄 수 있습니까? 감사합니다,

SystemError

+0

왜 처음부터 원하는 섹션을 쿼리하지 않습니까? – Brad

답변

2

왜 while 루프에서 $i를 증가한다. 검색어는 두 행을 반환하며 결과를 반복 할 때마다 $row[0]을 사용하여 section 값에 액세스 할 수 있습니다.

while ($row = mysql_fetch_array($sections)) { 
echo $row[0];  
} 

bananaspeaches을 인쇄 할 수 있습니다. 당신은 while 루프 두 번째 시간을 입력 할 때, 당신은 당신의 쿼리 결과는 하나 개의 열을 포함하기 때문에 null이 될 것이다, (1 증가하였습니다 $i 때문에) $row[1]를 사용 section 값을 검색하려고하는 코드에

.

+0

Woops, 고전적인 논리 실수. 필드가 행이 아닌 경우 인덱스 번호를 반복하는 행에 대해 계속 생각하고 있습니다. 감사 – SystemError