Reporte de calificaciones con php y mysql

Necesita saber como hacer el reporte de calificaciones de estudiantes sin q me repita los datos por ejemplo ya estando registrados los estudiantes en la base de datos necesito meter las notas a cada uno de estos y lo q.pasa es q cada q.meto una nota de un área especifica me muestra varias veces los datos de los estudiantes y sólo necesito q lo registre una sola vez y q me muestre todas las áreas y asignaturas q tienen notas...

1 Respuesta

Respuesta

Ensenanos que tienes hecho para ver donde falla. Dinos como has diseñado la base de datos.

Ok.. Cyrus gracias por mostrar interés por responderme, hasta ahora esto es lo que tengo

¿

<?php

include 'plantilla.php';
//require '../Reporte/fpdf/fpdf.php';
require 'conexion.php';


$query = "SELECT N.Id_Asig1, AVG(Nota) AS Nota,A.Area, AG.Asignatura, E.Nombres, E.ApellidoP, E.ApellidoM, G.Grado, C.Curso
From Estudiante AS E
INNER JOIN Grado AS G ON G.Id_Grado = E.Id_Grado1
INNER JOIN Curso AS C ON C.Id_Curso = E.Id_Curso1
INNER JOIN Nota AS N ON N.Id_Est1 = E.Id_Est
INNER JOIN Area AS A ON A.Id_Area = N.Id_Area1
INNER JOIN Asignatura AS AG ON AG.Id_Asig = N.Id_Asig1
GROUP BY AG.Id_Asig
ORDER BY E.Nombres";

$resultado = mysqli_query($conexion, $query); //Esta linea ayudaa mostrar los datos debe recibir la conexion

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage('P');
while($row = $resultado->fetch_assoc()){
$pdf->SetFillColor(232,232,232);
$pdf->SetFont('Arial','B',12); //si colocara antes de B que es para negrita colocara U saliera subrayado
$pdf->Cell(190,5,'Datos Estudiante',1,1,'C',1);
$pdf->Ln(3);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Nombres : ");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(155,5," ".utf8_decode($row['Nombres']));
$pdf->Ln(5);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Apellido Pat : ");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(155,5," ".utf8_decode($row['ApellidoP']));
$pdf->Ln(5);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Apellido Mat : ");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(155,5," ".utf8_decode($row['ApellidoM']));
$pdf->Ln(7);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Grado :");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(15,5," ".$row['Grado']);
$pdf->Cell(30,5," " . $row['Curso']);
$pdf->Ln(7);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Àrea :");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(15,5," ".$row['Area']);
$pdf->Ln(7);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Asignatura :");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(15,5," ".$row['Asignatura']);
$pdf->Ln(7);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(30,5,"Nota :");
$pdf->SetX(30);
$pdf->SetFont('Arial','',11);
$pdf->Cell(15,5," ".$row['Nota']);
}


$pdf->Output();

?>

Lo que yo quiere insisto es que no se vea como la imagen 1 (error) que estoy adjuntando sino como la imagen 2 (lo que se quiero)

Espero me puedas ayudar y poder ayudar atros

Así es lo que yo en realidad quiero como este ejemplo

Es complejo sin ver datos de ejemplo, pero yo diría que en vez de group by asignatura, debería ser group by estudiante, ¿no?... Lo primero que tienes que ver es si los datos que te da Mysql son los que necesitas. ¿Sacas un reporte de cada estudiante cada vez o todos a la vez?.

Yo he usado esa librería para pdf pero es un poco lio a veces, echale un vistazo a esta:, solo tienes que hacer el html y ella la convierte a pdf: https://wkhtmltopdf.org/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas