Hola como estan ! necesito ayuda.
Verán trabajo hace poco con el dompdf (por cierto esta super) y hasta ahora todo iba bien hasta que llegue a lo siguiente:
Estoy generando una boleta de notas de un colegio y en la construccion del archivo utilice un DO WHILE lo que me funciono a la perfección pero ahora necesito necesito generar un PDF con todos los boletines de un grupo.
antes que me digan que si cierro todas as etiquetas bn "si el documento se genera de forma perfecta solo que el dompdf no genera el pdf" pero ATENCION !! si borro el DO WHILE que contiene el ciclo de repetición para los boletines SI FUNCIONA entonces mi pregunta es...
Espero me ayuden y por si acaso les dejo el archivo PHP para que lo vean ustedes mismos.
<?php
/* llamando al archivo que contiene la informacion necesaria para realizar una conexion a la base de datos */
require_once('Connections/pxndx920720.php'); ?>
<?php
/* realizando la consulta para buscar la informacion del colegio */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_infocolegio = "SELECT * FROM alinfo WHERE acceso = 1";
$infocolegio = mysql_query($query_infocolegio, $pxndx920720) or die(mysql_error());
$row_infocolegio = mysql_fetch_assoc($infocolegio);
$totalRows_infocolegio = mysql_num_rows($infocolegio);
/* realizando la consulta para buscar el logo del colegio */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_logocolegio = "SELECT logocole FROM aladmin";
$logocolegio = mysql_query($query_logocolegio, $pxndx920720) or die(mysql_error());
$row_logocolegio = mysql_fetch_assoc($logocolegio);
$totalRows_logocolegio = mysql_num_rows($logocolegio);
/* realizando la consulta para buscar todos los usuarios que esten matriculados en el grado del cual se efctua la consulta */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_bucle = "SELECT * FROM alusuarios WHERE idgrado = 1";
$bucle = mysql_query($query_bucle, $pxndx920720) or die(mysql_error());
$row_bucle = mysql_fetch_assoc($bucle);
$totalRows_bucle = mysql_num_rows($bucle);
?>
<!--se inica el documento con las cabeceras-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<!--se definen las cases CSS que se usarran ademas de otros CSS utlizados en la generacion del pdf-->
<style type="text/css">
body
{
margin:39px;
}
#apDiv1 {
width:490px;
height:auto;
}
.nombrecol
{
text-transform:uppercase;
font-size:19px;
text-align:center;
}
.nombre
{
text-transform:uppercase;
font-size:18px;
}
.resolcion
{
text-transform:uppercase;
font-size:9px;
}
.eslogan
{
text-transform:capitalize;
font-size:10px;
}
.legal
{
font-size:9px;
}
.completo
{
border:1px solid black;
}
.arriba
{
border-top:1px solid black;
}
.enene
{
border-left:1px solid black;
border-right:1px solid black;
border-top:1px solid black;
}
.sinde
{
border:1px solid black;
border-left:none;
}
.sindelo
{
border:1px solid black;
border-left:none;
font-size:9px;
}
.esquina
{
border-right:1px solid black;
border-top:1px solid black;
}
</style>
</head>
<body>
<!--comienza el cuerpo del pdf-->
<?php
//que periodo estan averiguando
$periodo=4;
//año que se consulta
$ano=2012;
/* se realiza un ciclo con la consulta de estudiantes en el grado */
do {
//de quien es este boletin
$idestudiante=$row_bucle['id'];
?>
<?php
/* seraliza la consulta del identiicador del estudiante */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_estudiante = "SELECT * FROM alusuarios WHERE id = '$idestudiante'";
$estudiante = mysql_query($query_estudiante, $pxndx920720) or die(mysql_error());
$row_estudiante = mysql_fetch_assoc($estudiante);
$totalRows_estudiante = mysql_num_rows($estudiante);
/*se halla el identificardor del grado del estdiante */
$idgrado=$row_estudiante['idgrado'];
/* se realiza la consulta sobre el grado como nombre dependencia jornada ..etc.. */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_grado = "SELECT * FROM algrado WHERE idgrado = '$idgrado'";
$grado = mysql_query($query_grado, $pxndx920720) or die(mysql_error());
$row_grado = mysql_fetch_assoc($grado);
$totalRows_grado = mysql_num_rows($grado);
/* se realiza la consulta de las areas que se dictan al grado*/
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_asignaturas = "SELECT * FROM alareas WHERE idgrado = 1 ORDER BY nombre ASC";
$asignaturas = mysql_query($query_asignaturas, $pxndx920720) or die(mysql_error());
$row_asignaturas = mysql_fetch_assoc($asignaturas);
$totalRows_asignaturas = mysql_num_rows($asignaturas);
?>
<!--se crea la tabla de cabecera para almacenar informacion de las consultas como el logo el nombre de la institucion entre otros-->
<table width="100%" height="104" border="0">
<tr>
<th scope="col" align="center" class="nombrecol"><?php
$origen="instituto educativo ".$row_infocolegio['colegio'];
/* se pasa la cadena del nombre del colegio a mayusculas */
$resultado = strtoupper($origen);
echo $resultado;
?></th>
<th rowspan="3" scope="col"><img src="logocole.jpg" /></th>
</tr>
<tr>
<td align="center"><div class="resolcion">resolucion numero <?php echo $row_infocolegio['codservicio']; ?> de la secretaria de educacion.</div> </td>
</tr>
<tr>
<td align="center"><?php echo $row_infocolegio['eslogacol']; ?></td>
</tr>
</table>
<!--se acaba la tabla de cabecera y se inicia la que almacenara el resumen de informacion del estudiante-->
<table width="100%" border="0">
<tr>
<th colspan="6" align="center" class="nombre" scope="col"><?php
/*se imprime el nombre del estudiante */ $origen=$row_estudiante['apellidoa']. " ". $row_estudiante['apellidob']." ".$row_estudiante['nombre'];
/* se pasa la cadena del nombre a mayusculas */
$resultado = strtoupper($origen);
echo "$resultado";
?></th>
</tr>
<tr>
<th align="left">CODIGO</th>
<td ><?php echo $row_estudiante['id']; ?></td>
<th align="left">PERIODO</th>
<td ><?php
/* se realiza una consulta para identificar el periodo y convertirlo en letras */
if ($periodo==1)
{ echo "PRIMERO"; }
if ($periodo==2)
{ echo "SEGUNDO"; }
if ($periodo==3)
{ echo "TERCERO"; }
if ($periodo==4)
{ echo "FINAL"; }
?></td>
<th align="left">JORNADA</th>
<td ><?php $jornada=$row_grado['jornada'];
/* se averigua la jornada y se corrige ortografia */
if ($jornada=="MANANA")
{echo 'MAÑANA';};
if ($jornada=="TARDE")
{echo 'TARDE';};
if ($jornada=="NOCHE")
{echo 'NOCTURNA';};
if ($jornada=="SABATINA")
{echo 'SABATINA';};
?></td>
</tr>
<tr>
<th align="left">GRADO</th>
<td><?php echo $row_grado['grado'] . " ". $row_grado['dependencia']; ?></td>
<th align="left">MODALIDAD</th>
<td><?php
/* se realiza la consulta del grado y se ubica en un rango academico*/
$filtrando=$row_grado['grado'];
if ($filtrando >= 1 and $filtrando <=5)
{ echo 'PRIMARIA';}
if ($filtrando >= 6 and $filtrando <=9)
{ echo 'SECUNNDARIA';}
if ($filtrando >= 10 and $filtrando <=11)
{ echo 'BACHILLERATO';}
if ($filtrando == 'KINDER')
{ echo 'KINDER';}
if ($filtrando == 'TRANSICION')
{ echo 'TRANSICION';}
?></td>
<th align="left">AÑO</th>
<td><?php echo "$ano"; ?></td>
</tr>
</table>
<!--se acaba la tabla de resumen de informacion del estudiante y se inicia una que almacenara logros intensidad horaria, notas y asignaturas-->
<table width="100%" style="border-collapse:collapse" >
<tr>
<th width="25%" rowspan="2" align="left" class="enene" >ASIGNATURA</th>
<th width="4%" rowspan="2" align="center" class="esquina" >IH</th>
<th width="6%" rowspan="2" align="center" class="esquina" >FLL</th>
<th width="46%" rowspan="2" align="left" class="esquina" >LOGROS</th>
<th colspan="5" align="center" class="esquina" >NOTAS</th>
</tr>
<tr>
<td width="3%" align="center" class="esquina" >P1</td>
<td width="4%" align="center" class="esquina" >P2</td>
<td width="3%" align="center" class="esquina" >P3</td>
<td width="3%" align="center" class="esquina" >P4</td>
<td width="6%" align="center" class="esquina" >DEF</td>
</tr><!--se acaban las cabeceras de la tabla de notas y se inicia un ciclo para la consulta de las areas dictadas al grado del estudiante actual-->
<?php
/* se inicia el ciclo de materias */do { ?>
<tr width="25%">
<?php $idarea=$row_asignaturas['idarea']; ?>
<td class="completo" align="left"><?php
/* se consulta el nombre de la asignatura y se pasa a mayusculas para imprimirlo */
$origen=$row_asignaturas['nombre'];
$resultado = strtoupper($origen);
echo $resultado;
?></td>
<td width="4%" class="sinde" align="center"><?php /* se imprime la intensidad horaria de la materia */ echo $row_asignaturas['inthora']; ?></td>
<?php
/* se realiza la consulta de notas para el periodo 1 */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_notas = "SELECT * FROM alnotas WHERE idalumno ='$idestudiante' and idmateria ='$idarea' and periodo = 1 ";
$notas = mysql_query($query_notas, $pxndx920720) or die(mysql_error());
$row_notas = mysql_fetch_assoc($notas);
$totalRows_notas = mysql_num_rows($notas);
/* se realiza la consulta de notas para el periodo 2 */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_notasb = "SELECT * FROM alnotas WHERE idalumno ='$idestudiante' and idmateria ='$idarea' and periodo = 2 ";
$notasb = mysql_query($query_notasb, $pxndx920720) or die(mysql_error());
$row_notasb = mysql_fetch_assoc($notasb);
$totalRows_notasb = mysql_num_rows($notasb);
/* se realiza la consulta de notas para el periodo 3 */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_notasc = "SELECT * FROM alnotas WHERE idalumno ='$idestudiante' and idmateria ='$idarea' and periodo = 3 ";
$notasc = mysql_query($query_notasc, $pxndx920720) or die(mysql_error());
$row_notasc = mysql_fetch_assoc($notasc);
$totalRows_notas = mysql_num_rows($notasc);
/* se realiza la consulta de notas para el periodo 4 */
mysql_select_db($database_pxndx920720, $pxndx920720);
$query_notasd = "SELECT * FROM alnotas WHERE idalumno ='$idestudiante' and idmateria ='$idarea' and periodo = 4 ";
$notasd = mysql_query($query_notasd, $pxndx920720) or die(mysql_error());
$row_notasd = mysql_fetch_assoc($notasd);
$totalRows_notasd = mysql_num_rows($notasd);
?>
<td width="6%" class="sinde" align="center"> <?php /* se raliza una consulta para identificar el perido consultado y dependiendo de ello se imprimen las fallas de dicho periodo */
if ($periodo ==1)
{ echo $row_notas['fallas'];}
if ($periodo ==2)
{ echo $row_notasb['fallas'];}
if ($periodo ==3)
{ echo $row_notasc['fallas'];}
if ($periodo ==3)
{ echo $row_notasd['fallas'];}
?></td>
<td width="46%" class="sindelo" align="justify"><?php /* se raliza una consulta para identificar el perido consultado y dependiendo de ello se imprimen los logros de dicho periodo */
if ($periodo==1)
{
echo $row_asignaturas['logroa'];
}
if ($periodo==2)
{
echo $row_asignaturas['logrob'];
}
if ($periodo==3)
{
echo $row_asignaturas['logroc']; }
if ($periodo==4)
{
echo $row_asignaturas['logrod'];
}
?></td>
<td width="3%" class="sinde" align="center"><?php
/* se imprimela nota del perido 1 */
$nota1=$row_notas['nota'];
echo $row_notas['nota'];
?></td>
<td width="4%" class="sinde" align="center"><?php
/* se imprimela nota del perido 2 */
$nota2=$row_notasb['nota'];
echo $row_notasb['nota'];
?></td>
<td width="3%" class="sinde" align="center"><?php
/* se imprimela nota del perido 3 */
$nota3=$row_notasc['nota'];
echo $row_notasc['nota'];
?></td>
<td width="3%" class="sinde" align="center"><?php
/* se imprimela nota del perido 4 */
$nota4=$row_notasd['nota'];
echo $row_notasd['nota'];
?></td>
<td width="6%" class="sinde" align="center">
<?php
/* si el periodo es igual a 4 se realiza el promedio con todos los peroidos y se imprime */
if ($periodo == 4)
{
$suma=$nota1+$nota2+$nota3+$nota4;
$final=$suma/4;
echo $final;
}
?></td>
</tr>
<?php } /* se acaba el cilo de materias */while ($row_asignaturas = mysql_fetch_assoc($asignaturas)); ?>
<!--se cierra la tabla de notas--></table>
<p> </p>
<!--se imprime espacio para observaciones-->
<p>Observaciones:</p>
<p> </p>
<!--seimprime tabla de firmas-->
<table width="100%" border="0">
<tr>
<td width="6%"> </td>
<td width="21%"> </td>
<!--se incrusta la firma del rector y otros campos-->
<td width="35%"><div align="center"><img src="firmarec.jpg" width="201" height="89" /></div></td>
<td width="38%"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<th align="center"><p class="arriba">Rector (a)</p></th>
<th align="center"><p class="arriba">Profesor (a)</p></th>
</tr>
</table>
<!--se acaba la tabla-->
<p> </p>
<!--se inicia la tabla del pie del pdf-->
<table width="100%" border="0">
<tr>
<td align="justify" class="legal"><hr />
<!--se imprime el letrero de contenido legal-->
La presente certificacion electronica tiene validez juridica y legal en colombia, conforme a la ley 527 de 1991, el decreto reglamentario 1747 de 2.000 y las demas normas que la complementen, modifiquen o reemplacen. Para verificar la autenticidad de cualquier copia impresa , se debera efectuar la consulta atravéz de la pagina web de la institucion, en la cual se encuentra todo el documento digital original bajo en numero <?php /* se imprimime cadena de consulta */echo $idestudiante.$periodo.$ano; ?>.</td>
</tr>
</table>
<!--se cierra la ultima tabla y se hace un salto de pagina para repetir todo el proceso con otro alumno-->
<div style="page-break-after: always;" /></div>
<?php
/* se cierran todas las consultas realizadas en este ciclo para dar espacio ala siguiente hasta que el ciclo acabe y asi liberar memoria */
mysql_free_result($estudiante);
mysql_free_result($asignaturas);
mysql_free_result($notas);
mysql_free_result($notasb);
mysql_free_result($notasc);
mysql_free_result($notasd);
}
/* se cierra el ciclo de la consulta de estudiantes en el grado */
while ($row_bucle = mysql_fetch_assoc($bucle));
/*se cierran las 3 consultas realizadas el comienzo para liberar memoria*/
mysql_free_result($logocolegio);
mysql_free_result($bucle);
mysql_free_result($infocolegio);
?>
<!--se acaba y se cierra el documento-->
</body></html>