Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Tablas de acuerdo al resultado de una consulta

Estas en el tema de Tablas de acuerdo al resultado de una consulta en el foro de PHP en Foros del Web. // esto es solo un promedio de las 3 notas parciales echo "<td bgcolor='#CCCCCC'> ".$promedio."</td></tr>"; en este caso no sabria en realidad entre que dividir ...

  #31 (permalink)  
Antiguo 26/02/2013, 11:03
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

// esto es solo un promedio de las 3 notas parciales
echo "<td bgcolor='#CCCCCC'> ".$promedio."</td></tr>";

en este caso no sabria en realidad entre que dividir ya que necesito hacerlo por columna (parcial 1 x semestre) y no por fila

como tengo datos variantes ahi esta el detalle
  #32 (permalink)  
Antiguo 26/02/2013, 11:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Entiendo que tendria que dividir entre $contador pero la suma no se como llevarla
  #33 (permalink)  
Antiguo 26/02/2013, 11:28
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

estoy probandolo asi tambien

Código PHP:
$query_prom=sprintf("SELECT AVG(parcial1) AS promedio FROM calificaciones where matricula='%s' "$_SESSION['mivariabledesesion']); 

pero al hacer el echo
solo visualizo array
  #34 (permalink)  
Antiguo 26/02/2013, 11:30
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Tablas de acuerdo al resultado de una consulta

En ese caso en vez de 1 acumulador usa 3, uno para cada parcial...

$acumulador1+=$sql['parcial1']
$acumulador2+=$sql['parcial2']
$acumulador3+=$sql['parcial3']

y tendrias que hacer la division 3 veces tambien

echo "Promedio1: ".($acumulador1/$contador);
echo "Promedio2: ".($acumulador2/$contador);
echo "Promedio3: ".($acumulador3/$contador);
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #35 (permalink)  
Antiguo 26/02/2013, 11:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Gracias por tu paciencia

entiendo lo de generar 3 acumuladores y las 3 diviciones pero al probar con uno solo no me arrojo resultado

me quedo asi supongo q algo esta mal


Código PHP:
<?php
$grado
=$row_avisos['grado'];
$acumulador+=$sql['parcial1'];
$contador=0

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']);
$res mysql_query($sql$connection) or die(mysql_error());


for(
$lastgrado=0
    
$sqlmysql_fetch_assoc($res);
    
$lastgrado=$sql['grado']){
  if(
$sql['grado']!=$lastgrado){
    if(
$lastgrado!=0) echo "</table>"// se cierra la tabla si cambia
      
echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
    
echo "<table class='normal7' >"// y abre la tabla siguiente
 
echo "<h3><font color='black'>Semestre"." "$sql['grado'];
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas
  
echo  "<thead>";
 
  echo 
"<td width='250'> Materia </td>";  
echo 
"<td> Parcial 1</td>";   
echo 
"<td> Parcial 2</td>"
echo 
"<td> Parcial 3</td></tr>";

  echo 
"<br>"
  echo  
"</thead>";
  
  
$acumulador=0// Como es un grado nuevo reiniciamos el acumulador
    
$contador=0// Como es un grado nuevo reiniciamos también el contador

 
}
  

  echo 
"<td bgcolor='#CCCCCC'>".$sql['materia']."</td>";  
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial1']."</td>";  
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial2']."</td>";  
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial3']."</td></tr>";  
$promedio=$acumulador/$contador
  
  echo 
"<td bgcolor='#CCCCCC'> ".Promedio." ".$promedio."</td></tr>";   
  
$acumulador+=$promedio// agregamos el promedio al acumulador
  
$contador++; // aumentamos el contador en 1

echo $row_prom;






echo 
"</table>";


?>
me arroja Promedio:0
y tambien
Warning: Division by zero in...
  #36 (permalink)  
Antiguo 26/02/2013, 12:32
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Tablas de acuerdo al resultado de una consulta

Hola, en ese código que publicas no están ni los 3 acumuladores ni las 3 divisiones para que guardes cada nota parcial

$acumulador1+=$sql['parcial1'];
$acumulador2+=$sql['parcial2'];
$acumulador3+=$sql['parcial3'];

La siguiente linea debes quitarla ya que ahora el promedio es por parciales y no por materia:

$promedio=$acumulador/$contador;
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #37 (permalink)  
Antiguo 26/02/2013, 12:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Cita:
Iniciado por stramin Ver Mensaje
Hola, en ese código que publicas no están ni los 3 acumuladores ni las 3 divisiones para que guardes cada nota parcial

$acumulador1+=$sql['parcial1'];
$acumulador2+=$sql['parcial2'];
$acumulador3+=$sql['parcial3'];

La siguiente linea debes quitarla ya que ahora el promedio es por parciales y no por materia:

$promedio=$acumulador/$contador;
Estoy probando para el Parcial1,

quedo asi creo que si quite la línea correcta

Código PHP:
<?php 
$grado
=$row_avisos['grado']; 
$acumulador+=$sql['parcial1']; 
$contador=0;  

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']); 
$res mysql_query($sql$connection) or die(mysql_error()); 


for(
$lastgrado=0;  
    
$sqlmysql_fetch_assoc($res); 
    
$lastgrado=$sql['grado']){ 
  if(
$sql['grado']!=$lastgrado){ 
    if(
$lastgrado!=0) echo "</table>"// se cierra la tabla si cambia 
      
echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio 
    
echo "<table class='normal7' >"// y abre la tabla siguiente 
  
echo "<h3><font color='black'>Semestre"." "$sql['grado']; 
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas 
  
echo  "<thead>"
  
  echo 
"<td width='250'> Materia </td>";   
echo 
"<td> Parcial 1</td>";    
echo 
"<td> Parcial 2</td>";  
echo 
"<td> Parcial 3</td></tr>"

  echo 
"<br>";  
  echo  
"</thead>"
   
  
$acumulador=0// Como es un grado nuevo reiniciamos el acumulador 
    
$contador=0// Como es un grado nuevo reiniciamos también el contador 

 

   

  echo 
"<td bgcolor='#CCCCCC'>".$sql['materia']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial1']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial2']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial3']."</td></tr>";   

   
  echo 
"<td bgcolor='#CCCCCC'> ".Promedio." ".$promedio."</td></tr>";    
  
$acumulador+=$promedio// agregamos el promedio al acumulador 
  
$contador++; // aumentamos el contador en 1 





}  


echo 
"</table>";
?>

Pero me sale 0
  #38 (permalink)  
Antiguo 26/02/2013, 13:13
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Cambie ciertas partes del codigo quedo asi

Código PHP:
<?php 
$grado
=$row_avisos['grado']; 
$acumulador+=$sql['parcial1']; 
$contador=0;  

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']); 
$res mysql_query($sql$connection) or die(mysql_error()); 


for(
$lastgrado=0;  
    
$sqlmysql_fetch_assoc($res); 
    
$lastgrado=$sql['grado']){ 
  if(
$sql['grado']!=$lastgrado){ 
    if(
$lastgrado!=0) echo "</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador); // y se muestra el promedio 
    
echo "<table border='1' >"// y abre la tabla siguiente 
  
echo "<h3><font color='black'>Semestre"." "$sql['grado']; 
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas 
  
echo  "<thead>"
  
  echo 
"<td width='250'> Materia </td>";   
echo 
"<td> Parcial 1</td>";    
echo 
"<td> Parcial 2</td>";  
echo 
"<td> Parcial 3</td></tr>"

  echo 
"<br>";  
  echo  
"</thead>"
   
    
$acumulador=0// Como es un grado nuevo reiniciamos el acumulador
    
$contador=0// Como es un grado nuevo reiniciamos también el contador
 

   

  echo 
"<td >".$sql['materia']."</td>";   
echo 
"<td > ".$sql['parcial1']."</td>";   
echo 
"<td > ".$sql['parcial2']."</td>";   
echo 
"<td > ".$sql['parcial3']."</td></tr>";   

   

  
$acumulador+=$promedio// agregamos el promedio al acumulador 
  
$contador++; // aumentamos el contador en 1 





}  


echo 
"</table>"


?>
Pero suceden cosas raras

me queda asi la tabla
http://www.subeimagenes.com/img/tabla-556795.html

1.- mi contador de la tabla 1 es =0;
cuando debería ser 2
mi acumulador nunca se suma
  #39 (permalink)  
Antiguo 26/02/2013, 13:14
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Tablas de acuerdo al resultado de una consulta

Para sacar solo el parcial 1 primero borra la linea donde van los promedios, o sea esta:

Código PHP:
Ver original
  1. echo "<td bgcolor='#CCCCCC'> ".Promedio." ".$promedio."</td></tr>";

y al acumulador pasale el valor del parcial 1:

Código PHP:
Ver original
  1. $acumulador+=$sql['parcial1']; // agregamos el promedio al acumulador

también acabo de notar que no cerraste entre llaves el if del cierre de tabla con el promedio:

Código PHP:
Ver original
  1. if($lastgrado!=0){
  2.  echo "</table>"; // se cierra la tabla si cambia  
  3.       echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio  
  4. }
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #40 (permalink)  
Antiguo 26/02/2013, 13:21
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

LO deje asi

Código PHP:
<?php  
$grado
=$row_avisos['grado'];  
$acumulador+=$sql['parcial1'];  
$contador=0;   

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']);  
$res mysql_query($sql$connection) or die(mysql_error());  


for(
$lastgrado=0;   
    
$sqlmysql_fetch_assoc($res);  
    
$lastgrado=$sql['grado']){  
  if(
$sql['grado']!=$lastgrado){  
    if(
$lastgrado!=0) echo "</table>"// se cierra la tabla si cambia  
    
echo "Contador"." ".$contador
     echo 
"<br>"
    echo 
"Acumulador"." ".$acumulador
      echo 
"<br>"
      echo 
"Promedio: ".($acumulador/$contador); // y se muestra el promedio  
    
echo "<table border='1' >"// y abre la tabla siguiente  
   
echo "<h3><font color='black'>Semestre"." "$sql['grado'];  
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas  
  
echo  "<thead>";  
   
  echo 
"<td width='250'> Materia </td>";    
echo 
"<td> Parcial 1</td>";     
echo 
"<td> Parcial 2</td>";   
echo 
"<td> Parcial 3</td></tr>";  

  echo 
"<br>";   
  echo  
"</thead>";  
    
    
$acumulador=0// Como es un grado nuevo reiniciamos el acumulador 
    
$contador=0// Como es un grado nuevo reiniciamos también el contador 
 
}  
    

  echo 
"<td >".$sql['materia']."</td>";    
echo 
"<td > ".$sql['parcial1']."</td>";    
echo 
"<td > ".$sql['parcial2']."</td>";    
echo 
"<td > ".$sql['parcial3']."</td></tr>";    

    

  
$acumulador+=$promedio// agregamos el promedio al acumulador  
  
$contador++; // aumentamos el contador en 1  





}   


echo 
"</table>";  


?>
Pero suceden cosas raras

me queda asi la tabla
http://www.subeimagenes.com/img/tabla-556795.html

1.- mi contador de la tabla 1 es =0;
cuando debería ser 2

igual el de 4to. es 0
mi acumulador nunca se suma
  #41 (permalink)  
Antiguo 26/02/2013, 13:28
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

la linea que no habia cambiado fue esta


$acumulador+=$sql['parcial1']; // agregamos el promedio al acumulador

la reeplaze y funciona solo que el ultimo semestre no hace nada (no acumula, no cuenta)

quedo asi http://www.subeimagenes.com/img/tabla2-556815.html
  #42 (permalink)  
Antiguo 26/02/2013, 13:39
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Tablas de acuerdo al resultado de una consulta

Primero agrega las llaves como te dije antes, te las marco en rojo:

if($lastgrado!=0){
echo "</table>"; // se cierra la tabla si cambia
echo "Contador"." ".$contador;
echo "<br>";
echo "Acumulador"." ".$acumulador;
echo "<br>";
echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
}

Luego después del último </table> (al final del script) debes poner lo mismo:

Código PHP:
Ver original
  1. echo "</table>";
  2.     echo "Contador"." ".$contador;  
  3.     echo "<br>";  
  4.     echo "Acumulador"." ".$acumulador;  
  5.     echo "<br>";  
  6.     echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #43 (permalink)  
Antiguo 26/02/2013, 13:48
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Cita:
Iniciado por stramin Ver Mensaje
Primero agrega las llaves como te dije antes, te las marco en rojo:

if($lastgrado!=0){
echo "</table>"; // se cierra la tabla si cambia
echo "Contador"." ".$contador;
echo "<br>";
echo "Acumulador"." ".$acumulador;
echo "<br>";
echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
}

Luego después del último </table> (al final del script) debes poner lo mismo:

Código PHP:
Ver original
  1. echo "</table>";
  2.     echo "Contador"." ".$contador;  
  3.     echo "<br>";  
  4.     echo "Acumulador"." ".$acumulador;  
  5.     echo "<br>";  
  6.     echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
la llave la deje asi porque si no por cada registro (fila ) me hace los encabezados ejemplo si son 2 registro me muestra dos veces los titulos...

y bueno si tenias razón al final de la ultima tabla agregue lo que me decias y taran funciona!!!




ammm ahora solo me falta que de esos promedios obtenidos por semestre .... generar un promedio general es decir sumar los promedios semestrales y dividirlos entre el número de semestres....
me guiare con este mismo código espero me quede sino abusare de tu nobleza
Jeje pero prometo esmerarme

GRACIAS POR TODA TU AYUDA

Antes... antes como puedo quitar el error de la division entre cero????
  #44 (permalink)  
Antiguo 26/02/2013, 13:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

O más bien porque siempre arriba de mi tabla muestra acumulador:0
contador:0


?????? por eso me da el error de la division entre cero... pero no se de donde jala esos ceros
  #45 (permalink)  
Antiguo 26/02/2013, 13:53
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

si $contador lo inicializo en uno

$contador=1;

me quita el error pero no genera alguno posteriormente ?????
  #46 (permalink)  
Antiguo 26/02/2013, 14:16
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Tablas de acuerdo al resultado de una consulta

es por la llave esa que tienes que poner:

if($lastgrado!=0){
echo "</table>"; // se cierra la tabla si cambia
echo "Contador"." ".$contador;
echo "<br>";
echo "Acumulador"." ".$acumulador;
echo "<br>";
echo "Promedio: ".($acumulador/$contador); // y se muestra el promedio
}

Eso no repite los encabezados, solo se asegura de que exista una tabla antes de poner los resultados, si no lo pones entre llaves generara los resultados aunque no existan, por eso lo gernera en la primera linea.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #47 (permalink)  
Antiguo 26/02/2013, 15:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Teanias razón con las llaves a mi no me salia porque esta moviendo las que ya tenia NO poniendo nuevas

estoy ahora tratando de generar el promedio final (es decir de todos los semestres del parcial 1)
Código PHP:
  <?php 
$grado
=$row_avisos['grado']; 
$acumulador+=$sql['parcial1']; 
$contador=0
$contador2=0//Para saber cuantos promedios tengo
$acumulador2=0//aqui guardare todos los promedios

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']); 
$res mysql_query($sql$connection) or die(mysql_error()); 


for(
$lastgrado=0;  
    
$sqlmysql_fetch_assoc($res); 
    
$lastgrado=$sql['grado']){ 
  if(
$sql['grado']!=$lastgrado){
       
    if(
$lastgrado!=0){ echo "</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador);} // y se muestra el promedio
      
    
echo "<table class='normal7' >"// y abre la tabla siguiente 
  
echo "<h3><font color='black'>Semestre"." "$sql['grado']; 
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas 
  
echo  "<thead>"
  
  echo 
"<td width='250'> Materia </td>";   
echo 
"<td> Parcial 1</td>";    
echo 
"<td> Parcial 2</td>";  
echo 
"<td> Parcial 3</td></tr>"

  echo 
"<br>";  
  echo  
"</thead>"
   
    
$acumulador=0;
    
$contador=0
    
    
   
$acumulador2=0//aqui no me queda claro como acumular los promedios
    
$contador2=0// aqui se reinicia????  creo que no porque no va ser por cada semestre sino por todos??????
 

    

  echo 
"<td bgcolor='#CCCCCC'>".$sql['materia']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial1']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial2']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial3']."</td></tr>";   

   

  
$acumulador+=$sql['parcial1'];  // agregamos el promedio al acumulador  
  
$contador++; // aumentamos el contador
  
$acumulador2+= // aqui no se como acumular el promedio , tengo que pasarlo a una variable primero??????
  
$contador2++; // aumentamos el contador
}  



echo 
"</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador);
      echo 
"<br>";
       echo 
"Promedio Final: ".($acumulador2/$contador2);

?>

Bien pues me queda claro q debo tener mis dos variables acumulador y contador.... aunque contador podria ser igual a la variable grado (para saber entre que dividir) ammm solo que la gran duda es como acumular los promedios
  #48 (permalink)  
Antiguo 26/02/2013, 17:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

hice unos cambios solo que asi como lo posteare aun me dividi el promedio por semestre entre el numero de semestre...
no he podido acumular todos los promedios obtenidos
Código PHP:
 <?php 
$grado
=$row_avisos['grado']; 
$acumulador+=$sql['parcial1']; 
$contador=0
$contador2=0//Para saber cuantos promedios tengo
$acumulador2=0//aqui guardare todos los promedios

$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']); 
$res mysql_query($sql$connection) or die(mysql_error()); 


for(
$lastgrado=0;  
    
$sqlmysql_fetch_assoc($res); 
    
$lastgrado=$sql['grado']){ 
  if(
$sql['grado']!=$lastgrado){
       
    if(
$lastgrado!=0){ echo "</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador); // y se muestra el promedio
       
echo "Promedio Final: ".($acumulador/$grado);} // y se muestra el promedio
      
    
echo "<table class='normal7' >"// y abre la tabla siguiente 
  
echo "<h3><font color='black'>Semestre"." "$sql['grado']; 
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas 
  
echo  "<thead>"
  
  echo 
"<td width='250'> Materia </td>";   
echo 
"<td> Parcial 1</td>";    
echo 
"<td> Parcial 2</td>";  
echo 
"<td> Parcial 3</td></tr>"

  echo 
"<br>";  
  echo  
"</thead>"
   
    
$acumulador=0;
    
$contador=0
    
    
   
$acumulador2=0//aqui no me queda claro como acumular los promedios
    
$contador2=0// aqui se reinicia????  creo que no porque no va ser por cada semestre sino por todos??????
 

    

  echo 
"<td bgcolor='#CCCCCC'>".$sql['materia']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial1']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial2']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial3']."</td></tr>";   

   

  
$acumulador+=$sql['parcial1'];  // agregamos el promedio al acumulador  
  
$contador++; // aumentamos el contador
  
$acumulador2+=$acumulador/$grado;  // agregamos el promedio al acumulador 
  
$contador2++; // aumentamos el contador
}  



echo 
"</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador);
      echo 
"<br>";
       echo 
"Promedio Final: ".($acumulador2/$contador2);

?>
se me hizo mas sencillo dividir entre $grado que seria el total de semestres...
pero no he logrado acumular todos los promedios...

ya q lo q he conseguido es lo sig:por ejemplo semestre 1
si tengo 2 dieces en parcial uno
mi acumulador es 20 y lo q hace mi codigo obvio esta mal es q divide 20/4 y me da 5

ummmmmm no he podido almacenar los promedios de cada semestre
  #49 (permalink)  
Antiguo 26/02/2013, 18:35
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Tablas de acuerdo al resultado de una consulta

Por si alguien esta en las misma para obtener el promedio final o general es decir de todos los semestre hice esto y creo q funciona bien xD
Código PHP:
 <?php 
$grado
=$row_avisos['grado']; 
$acumulador+=$sql['parcial1']; 
$contador=0


$sql=sprintf("SELECT * FROM calificaciones Where grado <= $grado and matricula='%s' order by grado"$_SESSION['mivariabledesesion']); 
$res mysql_query($sql$connection) or die(mysql_error()); 


for(
$lastgrado=0;  
    
$sqlmysql_fetch_assoc($res); 
    
$lastgrado=$sql['grado']){ 
  if(
$sql['grado']!=$lastgrado){
       
    if(
$lastgrado!=0){ echo "</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador); // y se muestra el promedio
      
$prom=($acumulador/$contador);
      
$final+=$prom;
     
// echo 'Final'." ".$final;//aqui cheque que se fueran acumulando
     //  echo "Promedio Final: ".($final/$grado); // y mostrara el promedio
      
}
    echo 
"<table class='normal7' >"// y abre la tabla siguiente 
  
echo "<h3><font color='black'>Semestre"." "$sql['grado']; 
  echo 
"</font></h3>"// Despues de poner un título y cambiar el texto debes cerrar las etiquetas 
  
echo  "<thead>"
  
  echo 
"<td width='250'> Materia </td>";   
echo 
"<td> Parcial 1</td>";    
echo 
"<td> Parcial 2</td>";  
echo 
"<td> Parcial 3</td></tr>"

  echo 
"<br>";  
  echo  
"</thead>"
   
    
$acumulador=0;
    
$contador=0
    
    
  
  
 } 
     

  echo 
"<td bgcolor='#CCCCCC'>".$sql['materia']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial1']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial2']."</td>";   
echo 
"<td bgcolor='#CCCCCC'> ".$sql['parcial3']."</td></tr>";   

   

  
$acumulador+=$sql['parcial1'];  
  
$contador++; // aumentamos el contador

 
}  



echo 
"</table>"// se cierra la tabla si cambia 
    
echo "Contador"." ".$contador;
     echo 
"<br>";
    echo 
"Acumulador"." ".$acumulador;
      echo 
"<br>";
      echo 
"Promedio: ".($acumulador/$contador);
      echo 
"<br>";
       echo 
"Promedio Final: ".($acumulador/$grado);
      echo 
"<br>";
     
$prom=($acumulador/$contador);//promedio por semestre
      
$final+=$prom;//almacenar promedios
      
echo 'Promedio General'." ".$final/$grado;

?>

Etiquetas: acuerdo, select, tabla, tablas
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 06:28.