php/fpdf table 打印相同的记录
php/fpdf table printing the same records
我正在尝试以 pdf 格式打印此内容
但是记录是一样的,这很奇怪,因为它们在我的数据库中不一样。
问题:
criteria, grade, remark下的记录是一样的,但是在我的数据库里,不一样。
到目前为止,这是我的代码:
$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();
}
您错过了其他 mysql 提取的 while 循环。
$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();
我正在尝试以 pdf 格式打印此内容
但是记录是一样的,这很奇怪,因为它们在我的数据库中不一样。
问题: criteria, grade, remark下的记录是一样的,但是在我的数据库里,不一样。
到目前为止,这是我的代码:
$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();
}
您错过了其他 mysql 提取的 while 循环。
$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();