Foros del Web » Programando para Internet » PHP »

Como puedo solucionar mi error del for each

Estas en el tema de Como puedo solucionar mi error del for each en el foro de PHP en Foros del Web. Hola a todos estoy tratando de hacer lo siguiente calcular mi pomedio basado en el valor de mis input tengo el sig. codigo para actualizar ...
  #1 (permalink)  
Antiguo 30/05/2012, 17:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Como puedo solucionar mi error del for each

Hola a todos estoy tratando de hacer lo siguiente calcular mi pomedio basado en el valor de mis input
tengo el sig. codigo para actualizar datos de un arreglo

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {

   foreach(
$_POST["clave3"] as $i => $value){


               
$clave$_POST['claveasignatura'][$i];
                 
$rfc$_POST['clave3'][$i];
                 
$p1=$_POST['p1'][$i];
                  
$p2=$_POST['p2'][$i];
                 
$p3=$_POST['p3'][$i];
                 
$prom=$_POST['prom'][$i];
                
$resultado=$_POST['p1'][$i]+$_POST['p2'][$i]+$_POST['p3'][$i]/3;
                
$query=mysql_query("update calificar SET parcial3='$p3',promedio='$prom' WHERE claveasignatura='$clave' and rfcalumno='$rfc'");
                      
 
mysql_select_db($database_connection$connection);


  
$updateGoTo "licenciaturas3.php"


el cual funcionaba hasta antes de agregar $resulltado si lo quido funciona de nuevo jejeje

me esta arrojando este error


Warning: Invalid argument supplied for foreach()
este es mi formulario

Código PHP:
<?php do { ?>
  <tbody>
    <tr>  
  
    <td><?php  $i+=1; echo $i;?></td>
      <td ><input type="text" name="clave3[]" id="clave3[]" value="<? echo $row_calificarm['rfcalumno']; ?>" size="10" style="border: none; background:#e6e6e6 " disabled/></td>


.
 
  <?php } while ($row_calificarm mysql_fetch_assoc($calificarm)); ?>

Alguien me puede ayudar... por fa

Nota: este tema lo habia posteado antes pero intentaba resolverlo de otra manera
  #2 (permalink)  
Antiguo 30/05/2012, 17:49
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Como puedo solucionar mi error del for each

Pues primero verifica lo que recibes por post, ya que foreach falla cuando no le pasas un arreglo.

Por cierto, si pasas los datos de $_POST a otras variables ($p1=$_POST['p1'][$i];) por qué al querer sacar el resultado no las usas?
  #3 (permalink)  
Antiguo 30/05/2012, 17:51
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Como puedo solucionar mi error del for each

Cita:
Iniciado por ocp001a Ver Mensaje
Pues primero verifica lo que recibes por post, ya que foreach falla cuando no le pasas un arreglo.

Por cierto, si pasas los datos de $_POST a otras variables ($p1=$_POST['p1'][$i];) por qué al querer sacar el resultado no las usas?
Gracias por responder
si de hecho lo puse asi

resultado=$p1+$p2+$p3/3;

amm y si esta pasando mis datos ya q si quito esa linea al momento de mostrar los demas datos funciona
  #4 (permalink)  
Antiguo 30/05/2012, 18:05
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Como puedo solucionar mi error del for each

No tiene sentido que al quitar una operación aritmética haga fallar el foreach, a menos que estuvieras sobre escribiendo el arreglo que recorres. Dado que no muestras el código completo, me inclino a pensar que es algo más.
  #5 (permalink)  
Antiguo 31/05/2012, 11:16
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Como puedo solucionar mi error del for each

He checado mi codigo y lo he puesto asi

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {

foreach($_POST["clave3"] as $i => $value){


$clave= $_POST['claveasignatura'][$i];
$rfc= $_POST['clave3'][$i];
$p1=$_POST['p1'][$i];
$p2=$_POST['p2'][$i];
$p3=$_POST['p3'][$i];
$prom=$_POST['prom'][$i];

$query=mysql_query("update calificarm SET parcial3='$p3', promedio='$prom' WHERE claveasignatura='$clave' and rfcalumno='$rfc'");
$promedio=$p1+$p2+$p3/3;


mysql_select_db($database_connection, $connection);

Y en mi formulario esto

<form action="<?php echo $editFormAction; ?>" method="post" id="form1">

<?php do { ?>
<?php echo $promedio

?>

Pero no me arroja nada alguien sabe porque no toma ningun valor

Última edición por Briss; 31/05/2012 a las 18:05

Etiquetas: formulario, mysql, solucionar, sql
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 22:18.