Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/11/2014, 17:56
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Consulta de resumen por campos php mysql

La forma que yo utilizo es agrupar los datos en un arreglo, por ejemplo, para tu caso, podría ser

Código PHP:
Ver original
  1. while($fila=mysql_fetch_assoc($result))
  2.     $arreglo[$fila['grado']][$fila['asignatura']][$fila['desempeno']][]=$fila['logro'];
Esto creará un arreglo asociativo, que puedes recorrer con foreach, puede ser recursivo si tu arreglo no tiene una cantidad de niveles definido, o si sabes que sólo hay 4 niveles (en tu ejemplo) puedes anidar 4 foreach

Código PHP:
Ver original
  1. foreach($arreglo as $grado =>$arreglo_n2){//recorremos y obtenemos la primer columna (grado)
  2.       $nfilas=cuenta_filas($arreglo_n2);//función para contar elementos de un arreglo.
  3.       echo '<tr><td rowspan="'.$nfilas.'">'.$grado.'</td>';
  4.       foreach($arreglo_n2 as $asignatura =>$arreglo_n3)
  5.       -
  6.       -
  7.       -//demás código.
  8. }

la función para contar elementos o filas del arreglo sí debe ser recursiva, se trata de profundizar en el arreglo hasta que se llegue a los nodos finales

Código PHP:
Ver original
  1. function cuenta_filas($arreglo){
  2.    if(!is_array($arreglo))//si llegue al nodo (no es un arreglo)
  3.         return 1;
  4.    $suma=0;
  5.    foreach($arreglo as $clave =>$valor)
  6.        if(is_array($valor))
  7.             $suma+=cuenta_fila($arreglo);
  8.    return $suma;
  9. }