Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2012, 00:51
Avatar de oNefl0w189
oNefl0w189
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Relacionar datos / Capturar cambio.

Hola compañeros, necesito que me echéis una mano,

Necesito imprimir una media total de las preguntas, es decir, una media de la pregunta 1, una media de la pregunta 2, una media de la pregunta 3.

Lo que pasa es que las preguntas se repiten entre 1 y 4 veces en cada tabla, porque hay varios centros con esa pregunta.

y Necesito que después de la ULTIMA pregunta de cada número me imprima una fila y me la muestre.

No se relacionar los datos para ir guardando las medias de las preguntas y luego coger todas las preguntas 1 y hacer la media, luego todas las 2 y hacerla.. etc.

Os dejo el código que tengo:

Código PHP:
Ver original
  1. <?php
  2.  include('conex.php');
  3.  
  4.     // SELECCIONAMOS EL ÁMBITO.
  5.     $sql = ("SELECT ambitos.codAmbito, ambitos.descripAmbito FROM ambitos ORDER BY codAmbito");
  6.     $resultados = mysql_query($sql);
  7.  
  8.     //MIENTRAS HAYA ÁMBITO IMPRIME.
  9. while($datos = mysql_fetch_assoc($resultados)) {
  10.    
  11.     // IMPRIMIMOS EL TÍTULO Y ABRIMOS LA TABLA.
  12.     echo "<b>Ambito: </b>".$datos['descripAmbito'];
  13.     echo "<table border=\"1\"><tr><td><b>Centro</b></td><td><b>Numero Pregunta</b></td><td><b>Evaluador1</b></td><td><b>Evaluador2</b></td><td><b>Evaluador3</b></td><td><b>opinPos</b></td><td><b>opinNeg</b></td><td><b>Media</b></td><td><b>Ponderacion</b></td></tr>";
  14.    
  15.     // SELECIONAMOS TODOS LOS DATOS DE ENCUESTAS CUANDO TENGAN ESE CÓDIGO DE AMBITO.
  16.     $sql2 = ("SELECT descripAmbito, descripCentro, encuestas.codCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg, media
  17.     FROM ambitos, centros, encuestas
  18.     WHERE ambitos.codAmbito = '".$datos['codAmbito']."'
  19.     AND ambitos.codAmbito = encuestas.codAmbito
  20.     AND centros.codCentro = encuestas.codCentro
  21.     ORDER BY encuestas.numeroPregunta");
  22.     $resultados2 = mysql_query($sql2);
  23.        
  24.         // MIENTRAS  HAYA RESULTADOS IMPRIME.
  25.         while($datos2 = mysql_fetch_assoc($resultados2)) {
  26.        
  27.             // CALCULAMOS LA MEDIA (NO NECESARIO SI LA GUARDAMOS EN LA BD).
  28.             $med = round(($datos2['evaluador1'] + $datos2['evaluador2'] + $datos2['evaluador3']) /3);
  29.            
  30.             // SELECIONAMOS LOS PORCENTAJES PARA CALCULAR LA PONDERACIÓN.
  31.             $sql3 = ("SELECT porcentaje FROM ponderaciones WHERE codCentro = '".$datos2['codCentro']."'");
  32.             $resultados3 = mysql_query($sql3);
  33.            
  34.             // MIENTRAS HAYA DATOS EN PONDERACIONES IMPRIME.
  35.             while($datos3 = mysql_fetch_assoc($resultados3)){
  36.                 $ponderacion = round($med * $datos3['porcentaje']);
  37.             }
  38.        
  39.         // SEELECIONAMOS LA MEDIA CUANDO SEA ESE NUMERO DE PREGUNTA EN ESE AMBITO.
  40.         $sql4 = ("SELECT media FROM encuestas WHERE numeroPregunta = '".$datos2['numeroPregunta']."' AND codAmbito = '".$datos2['codAmbito']."'");
  41.         $resultados4 = mysql_query($sql4);
  42.            
  43.         // RELLENAMOS LA TABLA CON LOS DATOS   
  44.         echo "<tr>";
  45.         echo "<td>".$datos2['descripCentro']." </td>";
  46.         echo "<td>".$datos2['numeroPregunta']." </td>";
  47.         echo "<td>".$datos2['evaluador1']." </td>";
  48.         echo "<td>".$datos2['evaluador2']." </td>";
  49.         echo "<td>".$datos2['evaluador3']." </td>";
  50.         echo "<td>".$datos2['opinPos']." </td>";
  51.         echo "<td>".$datos2['opinNeg']." </td>";
  52.         echo "<td>".$med."</td>";
  53.         echo "<td>".$ponderacion."</td>";
  54.         echo "</tr>";
  55.            
  56.         }
  57.        
  58.         // CERRAMOS LA TABLA.
  59.         echo "</table>";
  60.         echo "<br>";
  61.  
  62.  
  63. }
  64. ?>


y una foto:





Lo dicho, tiene que coger TODAS las preguntas según el número (todas las 1, todas las 2) y DEPENDIENDO del ÁMBITO. (todas las 1 del ambito 1, todas las 1 del ambito 2).



Espero que me podáis echar una mano... que lo necesito!

Gracias, un saludo.
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)