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 
} 

その後Imは、各プロセスに割り当てられた人々を印刷しようとしている:

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: 
BOB (leader) 
PETER (checker) 
DON (staff) 

etc. 

しかし、私が得るものは:

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

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

どのようにして名前を正しく割り当てることができますか?

+0

私はあなたのプロセスを完全に理解していません。しかし、1つのプロジェクト番号に対して同じクエリを3回実行しているようです。私はあなたがプロジェクトの番号で 'ロール'と順序ですべてのプロセスをフェッチし、表示のためにループすることによってクエリを最小限に抑えることができると思う... – Naga

答えて

1

$column_procLeader = $column_procChecker = $column_procStaff = '';を次のようにループの隣に追加します。

for($y=0;$y<$len;$y++) 
{ 
    $column_procLeader = $column_procChecker = $column_procStaff = ''; 
    ..... 
関連する問題