2009-10-15 4 views
0

이것은 호출하는 함수입니다.PHP 여러 개의 MySQL 결과가 하나의 레코드 만 반환하는 함수

function GetSubmissions($coach){ 
       $result = mysql_query("SELECT * FROM `ptable` WHERE coach = '$_SESSION[username]'") or trigger_error(mysql_error()); 
       while($row = mysql_fetch_array($result)){ 
       foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
        $id = $row['id']; 
        $teampre = $row['team']; 
        $eventpre = $row['event']; 
        $statuspre = $row['status']; 
        $eventarray = DecodeEvent($eventpre); 
         $event = $eventarray[0]; 
         $cat = $eventarray[1]; 
         $subcat = $eventarray[2]; 
         $division = $eventarray[3]; 
         $type = $eventarray[4]; 
        $teamarray = explode(",", $teampre); 
         foreach ($teamarray AS $tkey => $tvalue){ 
          $result = mysql_query("SELECT * FROM `students` WHERE id = '$tvalue'") or trigger_error(mysql_error()); 
          while($row = mysql_fetch_array($result)){ 
          foreach($row AS $skey => $svalue) { $row[$skey] = stripslashes($svalue); } 
          $firstname = $row['firstname']; 
          $lastname = $row['lastname']; 
          $teamgo .= "$firstname $lastname<br/>"; 
          } 

       }  
        $push .= "<div id=submission><div id=event>$event</div><div id=status>$statuspre</div><div id=subinfo>$cat $subcat $division $type</div><div id=team>$teamgo</div></div>"; 
       }   

    return $push; 
} 

단 하나의 결과 만 반환하는 것을 제외하면 작동합니다. 필자는 여기저기서 조금 개조 해 봤지만 출력에 긍정적 인 변화가 보이지 않았습니다. 어떤 아이디어가 잘못 됐나?

답변

1

내부 루프에 동일한 $result을 사용합니다.

2

$ 결과 변수가 중첩되어 있습니다. 동일한 변수 이름을 두 번 사용하지 않는 것이 좋습니다. 두 번째 foreach 루프에서 두 번째 이름의 이름을 변경하면 트릭을 수행 할 수 있습니다.

+0

이 작업을했지만 두 번째 루프에서 결과가 반복되고 있습니다. – mrpatg

관련 문제