Foros del Web » Programando para Internet » PHP »

Celdas dinamicas PHP

Estas en el tema de Celdas dinamicas PHP en el foro de PHP en Foros del Web. hola amigos, estoy atorado en este paso y necesito toda la ayuda posible. Tengo que mostrar los promedios de meses de un rango de años ...
  #1 (permalink)  
Antiguo 08/06/2010, 12:00
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años, 7 meses
Puntos: 1
Celdas dinamicas PHP

hola amigos, estoy atorado en este paso y necesito toda la ayuda posible.

Tengo que mostrar los promedios de meses de un rango de años elegido por el usuraio.

AÑOS/MESES | ENERO | FEBRERO | MARZO | ABRIL | MAYO | JUNIO | ... | DICIEM.
2000-------|------|-------- |------ |----- |----- |----- |-- |- 6.9
2001-------|-5.5-- |--- 4----|- 6.6-- |- 6.6- |--5.9-|-7.8--| ... |- 6.9
2002-------|------|--- 4----|------ |----- |----- |-7.8--| ... |- 6.9

Estoy atorado por que hay algunos años que no tienen datos para todos lo meses. Por ejemplo el año 2000 podria tener solo datos del mes de diciembre y el año 2002 podria tener solo datos de febrero, junio, julio y diciembre.

La consulta la tengo asi:

Código PHP:
$sql "select anio,mes,dia1,dia2,dia3,...,d31 from TABLA where anio between".$anio_uno." and ".$anio_fin;

//mysql_query(); 

while($row mysql_fetch_array($resultados)){
   
//despues sumo los valores de los dias, no lo hago con SUM en la cadena $sql, por que hay datos que no se deben sumar
    
for($i=1;$i<=31;$i++){
      if(
$row['dia'.$i] != "10"){//valor que no se debe sumar
         
$suma $suma $row['dia'.$i];
         ++
$dividendo;
      }
    }

     
//imprimir $suma / $dividendo (promedio)
     
     
como solo tengo el promedio del mes de diciembre (2000), las primeras 11 celdasse deben imprimir vacias o con un simbolo <td>*</td> (para indicar que no hay datos para esos meses)

    
PERO por ejemplo para el 2002que tengo datos de febrerojuniojulio y diciembreComo indico que los demas meses no tienen datos ,es decir que en enero imprima un *, luego en febrero el promedio y asihasta diciembre.


Necesito encontrar una manera general de imprimir * o dejarlo en blanco (nulo) en los meses vacios
  #2 (permalink)  
Antiguo 08/06/2010, 12:17
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Celdas dinamicas PHP

en realidad no se entiende mucho tu pregunta.. o porlomenos yo no la entendi bien
seria algo como ?

Código PHP:
Ver original
  1. for($i=1;$i<=31;$i++){
  2.       if(empty($row['dia'.$i])){
  3.         // imprime el *
  4.         continue; // para que se salte ese dato
  5.       }
  6.       if($row['dia'.$i] != "10"){//valor que no se debe sumar
  7.          $suma = $suma + $row['dia'.$i];
  8.          ++$dividendo;
  9.       }
  10.     }

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 08/06/2010, 14:48
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Celdas dinamicas PHP

No no, osea de un año maximo hay 12 meses (12 promedios), cuando tengo 12 promedios (de un año) los muestro en la tabla tal cual empezando desde enero hasta diciembre, y luego empieza otro año.

Pero hay veces que no tengo los 12 promedios (12 meses), como les decia en el ejemplo para el año 2002 solo hay 4 promedios (4 meses) febrero, junio, julio y diciembre.


AÑOS/MESES | ENERO | FEBRERO | MARZO | ABRIL | MAYO | JUNIO | ... | DICIEM.
2000-------|------|-------- |------ |----- |----- |----- |-- |- 6.9
2001-------|-5.5-- |--- 4----|- 6.6-- |- 6.6- |--5.9-|-7.8--| ... |- 6.9
2002-------|------|--- 4----|------ |----- |----- |-7.8--| ... |- 6.9

Entonces como le hago para que en los meses que no tengo datos, imprima un * o no ponga nada (espacion en blanco) que serian (para el 2002) enero, marzo, abril, mayo, agosto, septiembre, octubre y noviembre.

Gracias por tu respuesta, y espero que ahora si este mas clara mi pregunta :D

Etiquetas: celdas, dinamicas
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 10:30.