Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2011, 15:27
Avatar de Deathmetalrules
Deathmetalrules
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mas - aya
Mensajes: 65
Antigüedad: 13 años, 5 meses
Puntos: 8
Sonrisa Crear ciclo por cada id!!!!!!

hola necesito saber como puedo crear un ciclo o array para poder recorrer cada fila de la tabla de mi base de datos para que pueda realizar la funcion promedio.


Código PHP:
<?php
session_start
();

include(
'cabecera2.inc');

header('Content-Type: text/html; charset=ISO-8859-1');

include(
'conexion.php');

echo
'<script type="text/javascript" src="./js/funcion.js"></script>';

echo
'<title>Calculo de promedios</title>';

echo
'<form name="frm" method="post" action="enviaracta.php" >';

echo 
"<img src='./imagen/acceso.png'>";

$llena="SELECT * from estudiantes";

$datos mysql_query($llena);

$numfilas mysql_num_rows($datos);

echo
'<table cellpadding=0 cellspacing=0 width=95% align=center border=0>';

echo
'<thead><tr><td colspan=12 align=center>Alumnos Inscritos en la Asignatura</td></tr></thead>';

echo
'<thead><tr><td>Nº</td><td>IdM</td><td>Materia</td><td>Apellidos y Nombres</td><td>I P</td><td>II P</td><td>III P</td><td>N.Final</td></tr></thead>';

for (
$i=0$i<$numfilas$i++)
{
$numlista $i 1;
$row mysql_fetch_array($datos);
$id=$row["idmatricula"];
$cd=$row["codmateria"];
$name_last=($row['apellidos']." ".$row['nombre']);    
//aca muestra el numero de fila, idmatricula, codmateria,nombre y apellidos
echo'<tr><td>'.$numlista.'</td>';
echo
'<td><input name=matricula[] value="'.$id.'" style=color:black;width:36px></td>';
echo
'<td><input name=materia[] value="'.$cd.'" style=color:black;width:66px></td>';
echo
'<td>'.$name_last.'</td>';

//se debe crear un arreglo para recorrer todos los valores y que la funcion calcular de javascript funcione para todos los datos.
//para cada estudiante debe existir un parcial1[] parcial2[] parcial3[] y prom[] segun la logica que debe tener el arreglo.

echo'<td><select name=parcial1[] id=parcial1 onChange="calcular()"  style=color:black>';
echo
'<option>-1</option>';
$value="select * from notas";
$result mysql_query($value);
while (
$valor mysql_fetch_array($result))
 { 
$nota=$valor['nota'];
echo
'<option value="'.$nota.'">'.$nota.'</option>';
 }
echo
'</select></td>';



echo
'<td><select name=parcial2[] id=parcial2 onChange="calcular()"  style=color:black>';
echo
'<option>-1</option>';
$value="select * from notas";
$result mysql_query($value);
while (
$valor mysql_fetch_array($result))
 { 
$nota=$valor['nota'];
echo
'<option value="'.$nota.'">'.$nota.'</option>';
 }
echo
'</select></td>';


echo
'<td><select name=parcial3[] id=parcial3 onChange="calcular()"  style=color:black>';
echo
'<option>-1</option>';
$value="select * from notas";
$result mysql_query($value);
while (
$valor mysql_fetch_array($result))
 { 
$nota=$valor['nota'];
echo
'<option value="'.$nota.'">'.$nota.'</option>';
 }
echo
'</select></td>';

echo
'<td><input name=prom[] id=prom  style=color:black;width:36px; type=text></td>';


 
}
echo
'</tr></table>';  
echo
"<input name=guardar type=submit value=\"Guardar Datos\" style=width:120px;z-index:107;left:550px;position:absolute;top:320px>";

echo
'</form>';
 
   
?>
El problema que tengo es que la solo se realiza la funcion promedio para un dato no para el segundo o "n" dato es decir no se recorre toda la tabla y es ahi donde no puedo saber como: si es en la funcion o en el formulario al crear la tabla

Código PHP:
function calcular()
       {
       
      
= new Array();
      
p[0] = document.getElementById("parcial1").value
      
      p
[1] = document.getElementById("parcial2").value
      
      p
[2] = document.getElementById("parcial3").value
      
      
for(0campos p.lengthcamposi++)
      {
      
p[i] = (!isNaN(p[i]) && p[i] != '')? Number(p[i]): 0;
      }
        if ( 
p[0] != "" )
        {

        
document.getElementById("prom").value =  p[0];

        }
        if ( 
p[0] ||  p[1] != "" )
        {

        var 
suma1 =  p[0] + p[1];

        var 
promedio_parcial Number(suma1 2);

        
promedio_parcial promedio_parcial.toFixed(1);

        
promedio_parcial promedio_parcial.substring(0promedio_parcial.length 2);

        
document.getElementById("prom").value promedio_parcial

        
}

        if ( 
p[0] ||  p[1] ||  p[2] != "" )
        {

        var 
suma2 =  p[0] +  p[1] +  p[2];

        var 
promedio Number(suma2 3);

        
promedio promedio.toFixed(1);

        
promedio promedio.substring(0promedio.length 2);

        
document.getElementById("prom").value promedio
        
}
              
      } 
se puede realizar el ciclo con un foreach() o no necesito su ayuda urgente

aca les dejo les dejo el vinculo del archivo que estoy trabajando:

http://www.mediafire.com/?1oevxcc0015dy94

espero le hechen una manito por favor