2012-11-01 1 views
0

mysql 결과 집합을 두 번 이상 반복 할 수 없다는 것을 알게되었습니다. 이게 내가 알지 못하는 정상적인 무언가인가?중첩 된 foreach 루프 내에서 mysql 결과를 두 번 이상 반복 할 수 없음

foreach ($items as $item) { 
    echo $item." ---------------<br>"; 
    // loop through set of results 
    foreach ($mysqlresults as $result) { 
     // loop through result 
     echo $result." ^^^^^^^^^^<br>"; 
     while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
      print_r($row); 
      echo "<br>"; 
     } 
    } 
} 

출력 :

item 1 --------------- 
ResourceID#1 ^^^^^^^ 
row 1 data 
row 2 data 
row 3 data 
row 4 data 
ResourceID#2 ^^^^^^^ 
row 1 data 
row 2 data 
row 3 data 
row 4 data 
ResourceID#3 ^^^^^^^ 
row 1 data 
row 2 data 
row 3 data 
row 4 data 
item 2 --------------- 
item 3 --------------- 
item 4 --------------- 
item 5 --------------- 

이 결과를 통해 리 루프 수 없거나 내가 뭔가 잘못하고있는 이유 좋은 이유가

그래서 추천 중첩 된 foreach는 루프를 ?

감사합니다.

답변

2

mysql_fetch_array이 결과를 통해 커서를 이동시킬 수 없습니다. 되감기를 위해 mysql_data_seek($result, 0)을 사용할 수 있습니다.

+0

감사합니다. 좀 더 정교 해 주실 수 있습니까? "결과를 통해 커서를 이동"...하지만 다시 그것을 말하고 ...? – inorganik

+0

또한 mysql_data_seek를 사용하기 전에 첫 번째 패스에 mysql_fetch_array를 사용해야합니까? – inorganik

+0

줄을 가져 오면 텍스트 파일을 읽을 때처럼 다음 줄로 이동합니다. –