2016-02-20 51 views
0

我想在PDFPHP/FPDF表打印相同的記錄

enter image description here

打印這一點,但這些記錄都是一樣的,它的奇怪,因爲他們不是我的數據庫中一樣。

問題: 條件,等級和備註下的記錄相同,但在我的數據庫中,這些記錄不一樣。

這是我到目前爲止的代碼:

$sql_criteria = mysql_query("SELECT DISTINCT criteria, percentage FROM tb_equivalent WHERE instructor_id = '$inst_id' AND description = '$desc' AND subj_code = '$code' AND term = '$term'"); 
    $criteria = array(); 
    while($row = mysql_fetch_assoc($sql_criteria)){ 
     $criteria[] = $row['criteria']; 
     $pdf->SetFont('Arial','',9); 
     $pdf->Cell(35,5,$row['criteria'],1,'','C'); 
     $x = $pdf->GetX(); 
     $y = $pdf->GetY(); 
     $pdf->SetXY($x-35, $y+5); 
     $pdf->Cell(17.5,5,'Ave',1,'','C'); 
     $pdf->Cell(17.5,5,$row['percentage']."%",1,'','C'); 
     $pdf->SetXY($x, $y); 
    } 

    $pdf->Cell(35,10,'Grade',1,0,'C'); 
    $pdf->Cell(35,10,'Remark',1,0,'C'); 
    $pdf->SetFont('Arial','',9); 
    $pdf->Ln(); 
    $sql = mysql_query("SELECT * FROM tb_equivalent INNER JOIN tb_student ON tb_equivalent.stud_id=tb_student.stud_id WHERE tb_equivalent.instructor_id = '$inst_id' AND tb_equivalent.description = '$desc' AND tb_equivalent.subj_code = '$code' GROUP BY tb_equivalent.stud_name ORDER BY stud_lname ASC"); 
    while($row = mysql_fetch_array($sql)){ 
     $name = $row['stud_name']; 
     $course = $row['course_and_year']; 
     $pdf->SetFont('Arial','',9); 
     $pdf->Cell(1); 
     $pdf->Cell(40,4,$name,1); 
     $pdf->Cell(20,4,$course,1,0,'C'); 

     for($x = 0; $x < count($criteria); $x++){ 
      $query_rec = mysql_query("SELECT * FROM tb_equivalent INNER JOIN tb_student ON tb_equivalent.stud_id=tb_student.stud_id WHERE tb_equivalent.instructor_id = '$inst_id' AND tb_equivalent.criteria = '".$criteria[$x]."' AND tb_equivalent.description = '$desc' AND tb_equivalent.subj_code = '$code' AND tb_equivalent.term = '$term' ORDER BY stud_lname ASC"); 
      $record = mysql_fetch_array($query_rec); 
      $pdf->Cell(17.5,4,$record['average'],1,0,'C'); 
      $pdf->Cell(17.5,4,$record['equivalent'],1,0,'C'); 

     } 
     $query_grade = mysql_query("SELECT grade, remark FROM tb_record_grade WHERE instructor_id = '$inst_id' AND description = '$desc' AND subj_code = '$code' AND term = '$term'"); 
     $row_grade = mysql_fetch_array($query_grade); 
     $pdf->Cell(35,4,$row_grade['grade'],1,0,'C'); 
     $pdf->Cell(35,4,$row_grade['remark'],1,0,'C'); 
     $pdf->Ln(); 
    } 
+0

對於它的價值,我建議將查詢移到它自己的函數中,關閉連接然後生成pdf。它關係較少的資源和清理代碼... –

回答

2

你錯過了while循環爲其他MySQL取。

$stud_id = $row['stud_id']; 
for($x = 0; $x < count($criteria); $x++){ 
    $query_rec = mysql_query(" 
     SELECT * 
     FROM tb_equivalent 
     INNER JOIN tb_student ON tb_equivalent.stud_id = tb_student.stud_id 
     WHERE tb_equivalent.instructor_id = '$inst_id' AND tb_equivalent.criteria = '".$criteria[$x]."' 
      AND tb_equivalent.description = '$desc' AND tb_equivalent.subj_code = '$code' AND tb_equivalent.term = '$term' 
      AND tb_equivalent.stud_id = '$stud_id' 
    "); 
    while ($record = mysql_fetch_array($query_rec)) { 
     $pdf->Cell(17.5,4,$record['average'],1,0,'C'); 
     $pdf->Cell(17.5,4,$record['equivalent'],1,0,'C'); 
    } 

} 
$query_grade = mysql_query(" 
    SELECT grade, remark 
    FROM tb_record_grade 
    WHERE instructor_id = '$inst_id' AND description = '$desc' AND subj_code = '$code' AND term = '$term' 
"); 
while ($row_grade = mysql_fetch_array($query_grade)) { 
    $pdf->Cell(35,4,$row_grade['grade'],1,0,'C'); 
    $pdf->Cell(35,4,$row_grade['remark'],1,0,'C'); 
} 
$pdf->Ln(); 
+0

嗨,先生爲什麼這樣? - > http://i.imgur.com/lMjGU7W.png – CallMeJeo

+0

已編輯上面的代碼以包含學生ID作爲查詢以獲取該數據在學生行的循環中 – awinwood

+0

謝謝先生,感謝您的努力sir:'' ) – CallMeJeo