2017-01-23 3 views
0

Ich versuche, Daten aus der Datenbank in Schleife mit Fpdf zu drucken. Also ich habe eine Anzahl von Prozessen. Und es gibt eine bestimmte Anzahl von Personen für jeden Prozess. Also zuerst SQL ist es, Prozesse zu erhalten:Separater Wert in Schleife

$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 
} 

Dann Im Versuch zugewiesen Menschen für jeden Prozess zu drucken:

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); 
} 

Also meine erwartete Ausgabe in etwa so sein sollte:

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

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

etc. 

Aber was ich bekomme ist:

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

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

Wie kann ich Namen richtig vergeben?

+0

Ich verstehe Ihren Prozess nicht vollständig. Aber es scheint, dass Sie dieselbe Abfrage für eine Projektnummer dreimal ausführen. Ich denke, Sie können die Abfrage minimieren, indem Sie den gesamten Prozess mit 'role' abrufen und nach Projektnummer sortieren und für die Anzeige loopen. – Naga

Antwort

1

Fügen Sie $column_procLeader = $column_procChecker = $column_procStaff = ''; Zeile neben for Schleife, wie unten.

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