2017-01-23 5 views
0

fpdf를 사용하여 루프에서 데이터베이스의 데이터를 인쇄하려고합니다. 그래서 나는 많은 과정을 가지고있다. 그리고 각 프로세스에 할당 된 인원이 있습니다. 그래서 첫 번째 SQL은 프로세스를 얻을 수 있습니다 :루프의 값이 서로 다릅니다.

$process=mysqli_query($con,"SELECT * FROM `process` WHERE projectNo='$projectNo'"); 
if (!$process) {die('Invalid queryyyyy: ' . mysqli_error());} 
while($row = mysqli_fetch_array($process)) 
{ 
    $proc[] = $row["process"]; 
    $len = count($proc); // getting length of an array 
} 

그리고 임 각 프로세스에 할당 된 사람을 인쇄하려고 :

Process A: 
AHMAD (leader) 
JOHN (checker) 
ACOL (staff) 

Process B: 
BOB (leader) 
PETER (checker) 
DON (staff) 

etc. 

:

for($y=0;$y<$len;$y++) 
{ 

    $result4 = getProcessLeader($projectNo,$proc[$y]); 
     if (!$result4) { 
      die('Invalid queryyyy: ' . mysqli_error($con)); 
     } 
     while($row4 = mysqli_fetch_array($result4)) 
     { 
      $procLeader = $row4['proc_leader']; 
      $column_procLeader .= $procLeader." (leader), "; 

     } 

    $result5 = getProcessChecker($projectNo,$proc[$y]); 
     if (!$result5) { 
      die('Invalid query: ' . mysqli_error($con)); 
     } 
     while($row5 = mysqli_fetch_array($result5)) 
     { 
      $procChecker = $row5['proc_checker']; 
      $column_procChecker .= $procChecker." (checker), "; 
     } 

    $result6 = getProcessStaff($projectNo,$proc[$y]); 
     if (!$result6) { 
      die('Invalid query: ' . mysqli_error($con)); 
     } 
     while($row6 = mysqli_fetch_array($result6)) 
     { 
      $procStaff = $row6['proc_staff']; 
      $column_procStaff .= $procStaff." (staff), "; 
     } 
    $pdf->Mach("Process Name: $proc[$y]","","", $column_procLeader, $column_procChecker, $column_procStaff); 
} 

그래서 내 예상 출력은 다음과 같이해야한다 하지만 내가 얻는 것은 :

Process A: 
AHMAD (leader) 
JOHN (checker) 
ACOL (staff) 

Process B: 
AHMAD (leader), BOB (leader) 
JOHN (checker), PETER (checker) 
ACOL (staff), DON (staff) 

이름을 올바르게 할당하려면 어떻게해야합니까?

+0

귀하의 프로세스를 완전히 이해하지 못했습니다. 하지만 한 프로젝트 번호에 대해 동일한 쿼리를 3 번 ​​실행하는 것 같습니다. 난 당신이 프로젝트의 번호로'롤'과 순서와 모든 프로세스를 가져 와서 디스플레이에 대한 루프 반복하여 쿼리를 최소화 할 수 있다고 생각 ... – Naga

답변

1

다음과 같이 for 루프 옆에 $column_procLeader = $column_procChecker = $column_procStaff = ''; 줄을 추가하십시오.

for($y=0;$y<$len;$y++) 
{ 
    $column_procLeader = $column_procChecker = $column_procStaff = ''; 
    .....