Foros del Web » Programando para Internet » PHP »

Molestando nuevamente :D

Estas en el tema de Molestando nuevamente :D en el foro de PHP en Foros del Web. Estimados tengo el siguiente codigo que me despliega el listado de notas y asignaturas dinamicamente osea aumenta las filas y las columnas segun asignaturas y ...
  #1 (permalink)  
Antiguo 12/09/2008, 15:13
 
Fecha de Ingreso: julio-2003
Mensajes: 154
Antigüedad: 20 años, 9 meses
Puntos: 0
Molestando nuevamente :D

Estimados tengo el siguiente codigo que me despliega el listado de notas y asignaturas dinamicamente osea aumenta las filas y las columnas segun asignaturas y notas tenga el usuario.

Código PHP:
// Obtener un array con todas las fechas posibles ordenadas
$consulta "select DISTINCT fecha from notas where id_alu='$dwusuario_id' and ano='$ano' and semestre='1' order by fecha";
$datos mysql_query($consulta);

$fechas = array();
$fechas[0][0] = "Asignatura";
$numFechas 1;
while( 
$unaFecha mysql_fetch_array$datos )) {
$fechas[0][ $numFechas++ ] = $unaFecha['fecha'];
}
$fechas[0][ $numFechas++ ] = "Total";


// Obtener los datos de médicos y notas
$consulta "select notas.id, notas.fecha, notas.nota, asignatura.asig, notas.id_asig, asignatura.asig_id, notas.id_alu from notas, asignatura where notas.id_asig=asignatura.asig_id AND notas.id_alu='$dwusuario_id' and ano='$ano' and semestre='1'";
$datos mysql_query($consulta) or die (mysql_error());

$numMed 0;
$medicoActual '';
$totalMedico 0;

while( 
$unMedico mysql_fetch_array$datos )) {
if (
$unMedico['asig'] != $medicoActual) {
$numMed++;
$medicoActual $unMedico['asig'];
$totalMedico 0;
}
$fechas$numMed ][0] = $unMedico['asig'];

$num 1;
while( 
$num < ($numFechas-1) ) {
if ( 
$unMedico['fecha'] == $fechas[0][ $num ] ) {
$fechas$numMed ][ $num ] = ($unMedico['nota']);
$totalMedico += $fechas$numMed ][ $num ];
} else {
if ( !isset(
$fechas$numMed ][ $num ]) ) {
$fechas$numMed ][ $num ] = '-';
}
}
$num++;
}
$fechas$numMed ][ $numFechas-] = $totalMedico;
}


// Mostrar una tabla con los datos
$tablaDatos "<table class='descripcion' border=1>";
for (
$med 0$med <= $numMed$med++) {
$tablaDatos .= " <tr> ";
for (
$num 0$num $numFechas$num++) {
$tablaDatos .= " <td> " $fechas$med ][ $num ] . " </td>";
}
$tablaDatos .= " </tr>";
}
$tablaDatos .= " </table>";

echo 
$tablaDatos
Si s fijan en esta linea

$totalMedico += $fechas[ $numMed ][ $num ];

se hace una suma de todas las notas esto lo hace sin ningun problema pero ahoa quiero sacar el promedio total del total de esas notas para eso tengo que dividir el valor total de la suma de esas notas por el numero de notas asignada a la asignatura ... e intentado sacarlo con mysql_num_rows con la funcion count() pero no e tenido resultados .... con mysql_mum_rows me devuelve la totalidad de las notas asignadas al usuario pero no el total de las notas asignadas a la asignatura con count() me devuelve siempre 1.

Me podrian ayudar con este poncho que tengo :(

Saludos cordiales y desde ya agradesco cualquier ayuda
__________________
--
Si los arboles dan frutos ......
PORQUE NO ESTUDIARON LOS ARBOLES?
  #2 (permalink)  
Antiguo 12/09/2008, 15:16
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Molestando nuevamente :D

Porque no colocas un contador debajo de la linea que subrayaste, al final este tendra el valor total de la cantidad de notas, no?
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 12/09/2008, 15:29
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Molestando nuevamente :D

este tipo de trabajos me gusta y es recomendable trabajarlos con sql, asi el programa trabaja mas rapido ej:

Código:
select sum(notas)/count(notas) as valor from notas where .....
asi te entrega una fila con un valor
__________________
~~[FiDeLio]~~
  #4 (permalink)  
Antiguo 12/09/2008, 15:33
 
Fecha de Ingreso: julio-2003
Mensajes: 154
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Molestando nuevamente :D

Agradeciendo las respuestas pero las dos soluciones dadas dañaran de alguna manera el array vidimensional que tengo .... porque a punta de ejemplo lo hice ... oseaaa costo mucho :P para uno que no es programador :P


Saludos
__________________
--
Si los arboles dan frutos ......
PORQUE NO ESTUDIARON LOS ARBOLES?
  #5 (permalink)  
Antiguo 12/09/2008, 15:54
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Molestando nuevamente :D

Cita:
Iniciado por PokeSpawn Ver Mensaje
Agradeciendo las respuestas pero las dos soluciones dadas dañaran de alguna manera el array vidimensional que tengo .... porque a punta de ejemplo lo hice ... oseaaa costo mucho :P para uno que no es programador :P


Saludos
no entendi tu punto de vista de que dañaran el array!, no tienen nada que ver con lo que haz hecho, asíu que no dañaran nada.
Solo agrega una variable que se incremente cada vez que entre al while o al if donde sumas los valores, y ya, en que puede dañar eso tu codigo??
esa variable, al final tendra la cantidad total de registros, lo que servira para hacer la division y sacar el promedio men!

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 05:47.