PHP - Sub-totales por cambio de semestre

 
Vista:
Imágen de perfil de orlando
Val: 103
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Sub-totales por cambio de semestre

Publicado por orlando (73 intervenciones) el 30/11/2011 03:04:45
Muchas gracias de antemano.

Estoy realizando un sql en tres tablas y quisiera que por cada cambio de semestre me diera subtotales.

Llevo varios días tratando de hacer y nada. Alguien me podría ayudar.

Estos son los dos querys :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
$result = mysql_query('SELECT estudiantes.semestre,
    estudiantes.seccion,
    estudiantes.cedula, 
    estudiantes.apellidos, 
    estudiantes.nombres, 
    estudiantes.codigo_carrera, 
    carreras.nombre_carrera, 
    carga_academica.periodo_academico,
    estudiantes.periodo_ingreso,
    estudiantes.turno
    FROM      estudiantes, carreras, carga_academica 
    WHERE     estudiantes.codigo_carrera=carreras.codigo_carrera 
    and     estudiantes.cedula=\''.$usuario.'\'
    and     carga_academica.cedula=\''.$usuario.'\'');
        
$row=mysql_fetch_array($result);                                
while ($registro = mysql_fetch_array($result)) {
    // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen                                   
    
    for($i=0; $i < mysql_num_rows($result); $i++){
        if(mysql_num_rows($result)>0) 
        $semestre = mysql_result($result,$i,"estudiantes.semestre");                                                                
        
        //// Comienza la impresion /////                                
    }

    echo'<table width="94%" border="0" align="center">';
    echo'<tr>';
    echo'<td width="18%">Estudiante : </td>';
    echo'<td width="62%">'.$row["apellidos"].' '.$row["nombres"].'</td>';
    echo'<td width="13%">C&eacute;dula : </td>';
    echo'<td width="7%">'.$row["cedula"].'</td>';
    echo'</tr>';
    echo'<tr>';
    echo'<td>Matr&iacute;cula : </td>';
    echo'<td>'.$row["periodo_ingreso"].'-'.$row["codigo_carrera"].''.$row["turno"].'-'.$row["cedula"].'</td>';
    echo'<td>Semestre : </td>';
    echo'<td>'.$semestre.'</td>';
    echo'</tr>';
    echo'<tr>';
    echo'<td>Especialidad : </td>';
    echo'<td>'.$row["nombre_carrera"].'</td>';
    echo'<td>&nbsp;</td>';
    echo'<td>&nbsp;</td>';
    echo'</tr>';
    echo'</table>';
}
}
?>
$result = mysql_query('SELECT asignaturas.credito,
    asignaturas.nombre_asignatura, 
    carga_academica.condicion, 
    carga_academica.codigo_asignatura, 
    asignaturas.codigo_asignatura, 
    carga_academica.seccion, 
    carga_academica.periodo_academico,
    carga_academica.final,    
    carga_academica.semestre,
    carga_academica.reparacion,
    carga_academica.periodo_academico                                                   
    FROM      estudiantes, carreras, carga_academica, asignaturas 
    WHERE     carga_academica.codigo_asignatura=asignaturas.codigo_asignatura 
    and     carga_academica.semestre=asignaturas.semestre 
    and     carga_academica.codigo_carrera=asignaturas.codigo_carrera 
    and     estudiantes.codigo_carrera=carreras.codigo_carrera 
    and     estudiantes.cedula=\''.$usuario.'\'
    and     carga_academica.cedula=\''.$usuario.'\'');
    $row=mysql_fetch_array($result);
    }                               
    while ($registro = mysql_fetch_array($result)) {                                
    // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen                                   
    $suma=0; $acumulado=0; $acumulador = 0; $puntos_acumulados = 0; $total_creditos = 0; $total_indice = 0; $puntos = 0; $final = 0; $credito = 0;

    echo'<table width="100%" border="1">';
    echo'  <tr>';
    echo'<th width="11%" scope="col">C&oacute;digo </th>';
    echo'<th width="60%" scope="col">Nombre de la Asignatura </th>';
    echo'<th width="5%" scope="col">NF</th>';
    echo'<th width="5%" scope="col">NR</th>';
    echo'<th width="5%" scope="col">UC</th>';
    echo'<th width="5%" scope="col">Ptos</th>';
    echo'<th width="20%" scope="col">Condici&oacute;n</th>';
    echo'</tr>';
    echo'</table>';
    for($i=0; $i < mysql_num_rows($result); $i++){
        if(mysql_num_rows($result)>0)
        $codigo_asignatura = mysql_result($result,$i,"codigo_asignatura");
        $nombre_asignatura = mysql_result($result,$i,"nombre_asignatura");
        $credito = mysql_result($result,$i,"credito");
        $seccion = mysql_result($result,$i,"seccion");
        $condicion = mysql_result($result,$i,"condicion");
        $final = mysql_result($result,$i,"final");
        $semestre_periodo = mysql_result($result,$i,"carga_academica.semestre");
        $reparacion = mysql_result($result,$i,"reparacion");
        $periodo_academico = mysql_result($result,$i,"carga_academica.periodo_academico");
        if (($condicion)== 'P')
            $credito=0;
        $suma = (int) $credito;
        $acumulado = $acumulado + $suma;
        $puntos = $final * $credito;
        $puntos_acumulados = $puntos_acumulados + $puntos;
        //$total_creditos = $total_creditos + $credito;
        $total_indice = round ($puntos_acumulados / $acumulado, 2);
        if ($semestre_periodo != $acumulador) {
            echo'<table width="100%" border="0">';
            echo'<tr>';
            echo'<td width="8%" scope="col">Semestre:</td>';
            echo'<td>'.$semestre_periodo.'</td>';
            echo'<td width="10%" scope="col">Per&iacute;odo:</td>';
            echo'<td width="75%" scope="col">'.$periodo_academico.'</td>';
            echo'</tr>';
            echo'</table>';
            echo'<table width="100%" border="1">';
            echo'<tr>';
            echo'<td width="11%" scope="col"><div align="center">'.$codigo_asignatura.'</div></td>';
            echo'<td width="60%" scope="col"><div align="left">'.$nombre_asignatura.'</div></td>';
            echo'<td width="5%" scope="col"><div align="center">'.$final.'</div></td>';
            echo'<td width="5%" scope="col"><div align="center">'.$reparacion.'</div></td>';
            echo'<td width="5%" scope="col"><div align="center">'.$credito.'</div></td>';
            echo'<td width="5%" scope="col"><div align="center">'.$puntos.'</div></td>';
            echo'<td width="20%" scope="col"><div align="left">'.$condicion.'</div></td>';
            echo'</tr>';
            echo'</table>';
            echo'<table width="100%" border="0">';
            //$acumulador = $semestre_periodo;
 
            if ($semestre_periodo == $acumulador) {
 
                //echo 'estoy aqui';
 
                    echo'<tr>';
                    echo'<td scope="col"><div align="justify">Totales Acumulados.........</div></td>';
                    echo'<td scope="col"><div align="justify">Unidades de Cr&eacute;ditos : </div></td>';
                    echo'<td scope="col">'.$acumulado.'</td>';
                    echo'<td scope="col"><div align="justify">Puntos:</div></td>';
                    echo'<td scope="col">'.$puntos_acumulados .'</td>';
                    echo'<td scope="col">&Iacute;ndice:</td>';
                    echo'<td scope="col">'.$total_indice.'</td>';
                    echo'</tr>';
                    echo'</table>';
            }
        }
    }
}
echo 'llego al final';
 
echo'<tr>';
echo'<td scope="col"><div align="justify">Totales Acumulados.........</div></td>';
echo'<td scope="col"><div align="justify">Unidades de Cr&eacute;ditos : </div></td>';
echo'<td scope="col">'.$acumulado.'</td>';
echo'<td scope="col"><div align="justify">Puntos:</div></td>';
echo'<td scope="col">'.$puntos_acumulados .'</td>';
echo'<td scope="col">&Iacute;ndice:</td>';
echo'<td scope="col">'.$total_indice.'</td>';
echo'</tr>';
echo'</table>';
mysql_free_result($result); // libera los registros de la tabla
mysql_close(); // cierra la conexion con la base de datos
?>


Como resultado :

Quisiera que para cada cambio de semestre me diera un subtotal.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de orl
Val: 103
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Sub-totales por cambio de semestre

Publicado por orl (73 intervenciones) el 30/11/2011 03:16:08
Este es el resultado:

Estudiante : URBINA PALACIOS KARLA ANDRIANY Cédula : 20416552
Matrícula : 1-2009-5103D-20416552 Semestre : 3
Especialidad : T.S.U ENFERMERIA

Código Nombre de la Asignatura NF NR UC Ptos Condición

Semestre: 1 Período: 1-2009

CSL10112 PSICOLOGIA GENERAL 15 0 2 30 N

Semestre: 1 Período: 1-2009

ADG10812 SALUD Y DESARROLLO ECONOMICO SOCIAL 15 0 2 30 N

Como podran ver me muestra de nuevo :

Semestre: 1 Período: 1-2009

Yo quisiera que me lo muestre solo una vez, por ejemplo:

Código Nombre de la Asignatura NF NR UC Ptos Condición

Semestre: 1 Período: 1-2009

CSL10112 PSICOLOGIA GENERAL 15 0 2 30 N

ADG10812 SALUD Y DESARROLLO ECONOMICO SOCIAL 15 0 2 30 N


Espero me hayan entendido, gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar