Foros del Web » Programando para Internet » PHP »

imprimir informes almacenados en BD

Estas en el tema de imprimir informes almacenados en BD en el foro de PHP en Foros del Web. hola, e buscado en la faq pero no pillo nada similar a mi problema, lo explico a continuacion: tengo un sistema ke ingresa notas de ...
  #1 (permalink)  
Antiguo 25/11/2005, 06:03
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
imprimir informes almacenados en BD

hola, e buscado en la faq pero no pillo nada similar a mi problema,
lo explico a continuacion:

tengo un sistema ke ingresa notas de un colegio, tiene mantenedores para actualizarlas etc,
existe una opcion ke muestra la lista de alumnos de un curso y al lado de existe un link para v er las notas de cada alumno, por separado osea por cada clik se habre un reporte ke tiene un formato estandar y solo ban cambiando los datos segun el alumno, lo que quiero hacer es poner un link con el cual pueda imprimir todas las notas de todos los alumnos, automaticamente, ya que actualmente si el curso tiene 30 alumnos tengo ke hacer 30 clik para imprimir los informes, entonces pensaba que puede existir alguna opcion de exportar a word o en html o pdf, los informes de todos los alumnos de un curso, para asi imprimir de una ves los 30 informes...
y asi para cada curso...
bueno espero sus asertados comentarios...
saludos
__________________
Chiloé
  #2 (permalink)  
Antiguo 25/11/2005, 07:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No indicas si gestionas toda esa información en Base de datos (ni cual usas Mysql? ..) .. pero si para ver las "notas de un alumno" haces algo tipo:

SELECT * FROM .... WHERE alumno='$alumon'

Lo primero que debes es generar todos esos datos desde tu consulta SQL .. por ende harías algo tipo:

SELECT * FROM ....

Sin el "WHERE" que condicionas a cierto "caso" (o valor de cierto campo).

Así mismo podrías usar tu actual código que presenteas esos datos (no se vé como lo haces tampoco: codigo) .. Si luego quieres genera un PDF .. adelante puedes usar www.fpdf.org (mejor control de impresión y formato del documento).

Un saludo,
  #3 (permalink)  
Antiguo 25/11/2005, 07:32
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
bueno ocupo html, php y mysql,
este es el codigo del "informe tipo" donde despliego los datos del alumno, (una vez seleccionado en la tabla)

Código PHP:
<?php 
$hostname_connBD 
"localhost";
$database_connBD "colegio";
$username_connBD "cahuala5";
$password_connBD "nmaster987";
$connBD mysql_pconnect($hostname_connBD$username_connBD$password_connBD) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_connBD$connBD);
$query_not "SELECT * FROM colegio.1 where al_id ='$id_del_alumno' order by no_id";
$pl "SELECT AVG(lenguaje_y_comunicacion_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pi "SELECT AVG(ingles_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pma "SELECT AVG(matematica_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pcm "SELECT AVG(comprencion_del_medio_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pt "SELECT AVG(tecnologia_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pa "SELECT AVG(arte_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pm "SELECT AVG(musica_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$ped "SELECT AVG(ed_fisica_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";
$pf "SELECT AVG(filosofia_1_4) FROM colegio.1 where al_id ='$id_del_alumno'";

$reg mysql_query($query_not$connBD) or die(mysql_error());
$proml mysql_query($pl$connBD) or die(mysql_error());
$promi mysql_query($pi$connBD) or die(mysql_error());
$promma mysql_query($pma$connBD) or die(mysql_error());
$promcm mysql_query($pcm$connBD) or die(mysql_error());
$promt mysql_query($pt$connBD) or die(mysql_error());
$proma mysql_query($pa$connBD) or die(mysql_error());
$promm mysql_query($pm$connBD) or die(mysql_error());
$promed mysql_query($ped$connBD) or die(mysql_error());
$promf mysql_query($pf$connBD) or die(mysql_error());
$rsl mysql_fetch_array($promlMYSQL_NUM);
$rsi mysql_fetch_array($promiMYSQL_NUM);
$rsma mysql_fetch_array($prommaMYSQL_NUM);
$rscm mysql_fetch_array($promcmMYSQL_NUM);
$rst mysql_fetch_array($promtMYSQL_NUM);
$rsa mysql_fetch_array($promaMYSQL_NUM);
$rsm mysql_fetch_array($prommMYSQL_NUM);
$rsed mysql_fetch_array($promedMYSQL_NUM);
$rsfmysql_fetch_array($promfMYSQL_NUM);
?>
<?php 
while ($row_log_h mysql_fetch_assoc($reg)) { 
    @
$lenguaje.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['lenguaje_y_comunicacion_1_4']."</span></div></td>"
    @
$ingles.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['ingles_1_4']."</span></div></td>"
    @
$matematicas.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['matematica_1_4']."</span></div></td>"
    @
$comprencionm.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['comprencion_del_medio_1_4']."</span></div></td>"
    @
$tecnologia.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['tecnologia_1_4']."</span></div></td>"
    @
$arte.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['arte_1_4']."</span></div></td>"
    @
$musica.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['musica_1_4']."</span></div></td>"
    @
$edfisica.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['ed_fisica_1_4']."</span></div></td>"
    @
$filosofia.="<td bordercolor=\"#000000\"><div align=\"center\"><span class=\"Estilo2\">".$row_log_h['filosofia_1_4']."</span></div></td>"

?>
<html>
<head>
<style type="text/css">
<!--
.Estilo2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
}
.Estilo8 {font-size: 12px; font-weight: bold; font-family: Arial, Helvetica, sans-serif; }
.Estilo10 {font-size: 12px; font-family: Arial, Helvetica, sans-serif; }
.Estilo11 {font-size: 12px; font-weight: bold; font-family: Arial, Helvetica, sans-serif; color: #999999; }
.Estilo13 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
-->
</style>
</head>
<body>
<div align="center">
  <p>
    <style type="text/css">
<!--
.Estilo3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
.Estilo4 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 18px;
}
-->
    </style>
  </p>
  <table width="492" border="0" align="left">
    <tr>
      <td>&nbsp;</td>
      <td width="10">&nbsp;</td>
      <td width="344">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td width="124"><span class="Estilo8">INSTITUCI&Oacute;N</span></td>
      <td class="Estilo8">:</td>
      <td><span class="Estilo10">Colegio Cahuala Insular</span> </td>
    </tr>
    <tr>
      <td><strong class="Estilo8">A&Ntilde;O ESCOLAR </strong></td>
      <td class="Estilo8">:</td>
      <td><span class="Estilo10">2005</span> </td>
    </tr>
    <tr>
      <td><strong class="Estilo8">CURSO</strong></td>
      <td class="Estilo8">:</td>
      <td><?
            
if ($id_del_curso == "1") {
            echo 
"<div class=\"Estilo10\">1 - A Enseñanza Básica</div>";
            } elseif (
$id_del_curso == "2") {
            echo 
"<div class=\"Estilo10\">2 - A Enseñanza Básica</div>";
            } elseif (
$id_del_curso == "3") {
            echo 
"<div class=\"Estilo10\">3 - A Enseñanza Básica</div>";
            } elseif (
$id_del_curso == "4") {
            echo 
"<div class=\"Estilo10\">4 - A Enseñanza Básica</div>";
            } else {
            echo 
"<div class=\"Estilo10\">Desconocido</div>";
            }
            
?></td>
    </tr>
    <tr>
      <td><strong class="Estilo8">ALUMNO</strong></td>
      <td class="Estilo8">:</td>
      <td><span class="Estilo10"><? echo"$nombre_alumno";?></span></td>
    </tr>
    <tr>
      <td><strong class="Estilo8">PROFESOR JEFE </strong></td>
      <td class="Estilo8">:</td>
      <td><?
if ($id_del_curso == "1") {
echo 
"<div class=\"Estilo10\">Claudia Mancilla Díaz</div>";
} elseif (
$id_del_curso == "2") {
echo 
"<div class=\"Estilo10\">Claudia Mancilla Díaz</div>";
} elseif (
$id_del_curso == "3") {
echo 
"<div class=\"Estilo10\">Florencia Campos</div>";
} elseif (
$id_del_curso == "4") {
echo 
"<div class=\"Estilo10\">Claudia Mancilla Díaz</div>";
} else {
echo 
"<div class=\"Estilo10\">Desconocido</div>";
}
?></td>
    </tr>
  </table>
  <p><img src="img/header.JPG" width="4" height="133"> </p>
  <p>&nbsp;</p>
  <p>&nbsp;    </p>
  <table width="200" border="0">
    <tr>
      <td><div align="center" class="Estilo11">INFORME DE NOTAS</div></td>
    </tr>
    <tr>
      <td><div align="center" class="Estilo8">PRIMER SEMESTRE DEL 2005</div></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
</div>
__________________
Chiloé
  #4 (permalink)  
Antiguo 25/11/2005, 07:33
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
Código PHP:
  <table width="556" border="1" align="center" bordercolor="#FFFFFF">
  <tr> 
    <td width="644"><span class="Estilo13"><u>SubSector de Aprendizaje </u></span></td>
  </tr> 
  <tr> 
    <td width="644"><span class="Estilo2">Lenguaje y Comunicaci&oacute;n</span></td>
    <?=$lenguaje?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
         $num1
$rsl[0];  
        
$variable1intval($num1).substrstrstr($num1"."), 02); 
        echo 
$variable1;
    
?>
    </strong></span></div></td>
  </tr> 
  <tr> 
    <td><span class="Estilo2">Ingles</span></td>
    <?=$ingles ?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
    $num2
$rsi[0];  
        
$variable2intval($num2).substrstrstr($num2"."), 02); 
        echo 
$variable2;
    
?>
    </strong></span></div></td> 
  </tr> 
    <tr> 
    <td><span class="Estilo2">Matematicas</span></td>
    <?=$matematicas ?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
    $num3
$rsma[0];  
        
$variable3intval($num3).substrstrstr($num3"."), 02); 
        echo 
$variable3;
    
?>
      </strong></span></div></td>
  </tr> 
    <tr>
      <td><span class="Estilo2">Estudio y Comprensi&oacute;n del Medio </span></td>
       <?=$comprencions ?>
      <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
        $num4
$rscm[0];  
        
$variable4intval($num4).substrstrstr($num4"."), 02); 
        echo 
$variable4;
        
?>
      </strong></span></div></td>
    </tr> 
    <tr>
      <td><span class="Estilo2">Tecnolog&iacute;a</span></td>
      <td bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
          <? 
        $num5
$rst[0];  
        
$variable5intval($num5).substrstrstr($num5"."), 02); 
        echo 
$variable5;
        
?>
      </strong></span></div></td>
    </tr>
    <tr> 
    <td><span class="Estilo2">Arte</span></td>
    <?=$arte ?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
    $num6
$rsa[0];  
        
$variable6intval($num6).substrstrstr($num6"."), 02); 
        echo 
$variable6;
    
?>
      </strong></span></div></td>
  </tr> 
    <tr> 
    <td><span class="Estilo2">Educaci&oacute;n Musical </span></td>
    <?=$musica ?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
    $num7
$rsm[0];  
        
$variable7intval($num7).substrstrstr($num7"."), 02); 
        echo 
$variable7;
    
?>
      </strong></span></div></td> 
  </tr> 
    <tr>
      <td><span class="Estilo2">Educaci&oacute;n F&iacute;sica</span></td>
      <?=$edfisica ?>
      <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
    $num8
$rsed[0];  
        
$variable8intval($num8).substrstrstr($num8"."), 02); 
        echo 
$variable8;
    
?>
      </strong></span></div></td> 
    </tr>
    <tr> 
    <td><span class="Estilo2">Filosof&iacute;a  </span></td>
    <?=$filosofia ?>
    <td width="40" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
        $num9
$rsf[0];  
        
$variable9intval($num9).substrstrstr($num9"."), 02); 
        echo 
$variable9;
    
?>
      </strong></span></div></td>
  </tr> 
</table>
 
 <table width="311" border="1" align="center" bordercolor="#FFFFFF">
   <tr>
      <td></td>
      <td></td> 
   </tr>
   <tr>
      <td width="258"><span class="Estilo13">PROMEDIO PRIMER SEMESTRE 2005 </span></td>
      <td width="37" bordercolor="#666666"><div align="center"><span class="Estilo2"><strong>
        <? 
            $num10
= ($num1+$num2+$num3+$num4+$num5+$num6+$num7+$num8+$num9)/ 9;
            
$num100$num10;  
            
$promfinalintval($num100).substrstrstr($num100"."), 02); 
            echo 
$promfinal;
        
?>
      </strong></span></div></td> 
   </tr>
</table>
<p>&nbsp;</p>
<span class="Estilo4">

</div>
</body>
</html>
aki termina el codigo de la pagina donde muestro las notas de los alumnos
__________________
Chiloé
  #5 (permalink)  
Antiguo 25/11/2005, 07:42
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
bueno lo que quiero hacer es ke al momento de imprimir el informe no me muestre solo la informacion de un alumno (que obiamente seleccione anteriormente) sino de todos los del curso
no se sia me explico bien, actualmente selecciono un alumno, me muestra sus notas en un informe y lo imprimo, cada alumno una pagina html, una hoja y por ende un informe, lo que kiero es que habra una pagina me muestre los informes de los 30 alumnos para imprimirlos en una hoja cada uno; asi como tener los 30 informes en un documento de word, 30 informes-> 30 hojas al momento de imprimir me imprime de una ves los 30 informes.
nose si me explique bien...
saludos
__________________
Chiloé
  #6 (permalink)  
Antiguo 25/11/2005, 07:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por qué usas tantas consultas SQL para sacar unos promedios? (podrías hacerlo en una sóla consulta SQL).

Código PHP:
$query_not "SELECT *,AVG(lenguaje_y_comunicacion_1_4) AS promedio_lenguaje_y_comunicacion_1_4,AVG(ingles_1_4) AS promedio_ingles_1_4,etc .....  FROM colegio.1 where al_id ='$id_del_alumno' order by no_id"
Creo que con eso sobraría (de todas formas sería interesante que lo confirmes en el foro de "Base de datos" ..).

----------------------

Has probado ya a quitar el "WHERE ....." de todas las consultas SQL que ahí haces y observar que obtienes? ... Si dices que quieres todos los registros .. no uses el "WHERE que fijas el resultado a cierto dato relacionado".

Por cierto .. en general veo que fuerzas un montón de datos a "HTML" .. Cosas como estas:
if ($id_del_curso == "1") {
echo "<div class=\"Estilo10\">Claudia Mancilla Díaz</div>";

deberías crear un modelo de datos más relacional .. por ejemplo algo tipo

profesores
id_profesor
nombre

y en tus cursos defines
id_curso
id_profesor
etc ...

luego haces consultas SQL relacionadas y obtienes rápidamente el "profesor" que atiene ese curso ..

Lo mismo con los alumnos ... o con las "materias/ramos" que se imparten para cierto curso ..

En definitiva .. creo que deberías re-plantearte el modelo de datos que usas para optimizar y generar por ejemplo "reportes" mucho más dinámicos, o simplemente plantearte cosas como "y si cambia el profesor que atiene tal curso .. o llega uno nuevo para un curso nuevo? .. que harías ahí?". Debemos crear sistemas que puedan crecer por si solos sin tener que meter mano a "código". Es sólo una recomendación .. Pero si no lo haces así, cada vez más se te irá complicando la vida para hacer taréas que con una "buena base de datos" diseñada (relacional y normalizada) se realizan comodamente y dan mucho juego para generar informes y demás.

Un saludo,
  #7 (permalink)  
Antiguo 25/11/2005, 09:03
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
tienes razon, tiempo atras cuando empese a desarrollar el sistema tambien me sugerieron lo mismo, de a poco e ido mejorando la BD relacionandola y normalizandola pero veo que keda mucho por hacer,
gracias intentare probar las sugerencias
saludos
__________________
Chiloé
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.