Foros del Web » Programando para Internet » PHP »

Array solo muestra el último valor

Estas en el tema de Array solo muestra el último valor en el foro de PHP en Foros del Web. Buenas gente!, tengo una pequeña dudilla: Genero unas tablas así: Código PHP: <form action="scripts/updatetabla.php" method="post"><table><tr><th>Nom del alumne</th></tr> <?php       $consultatablasprofes  =  mysql_query ( "SELECT * FROM tablasprofes WHERE idt='$tabla'" );                     while( $resultadoconsultatablasprofes  =  mysql_fetch_array ( ...
  #1 (permalink)  
Antiguo 13/03/2011, 14:12
 
Fecha de Ingreso: diciembre-2010
Ubicación: Gavà
Mensajes: 74
Antigüedad: 13 años, 4 meses
Puntos: 3
Pregunta Array solo muestra el último valor

Buenas gente!, tengo una pequeña dudilla:

Genero unas tablas así:
Código PHP:
<form action="scripts/updatetabla.php" method="post"><table><tr><th>Nom del alumne</th></tr>
<?php
      $consultatablasprofes 
mysql_query("SELECT * FROM tablasprofes WHERE idt='$tabla'");          
          while(
$resultadoconsultatablasprofes mysql_fetch_array($consultatablasprofes)){
                  
$numero_alumnos $resultadoconsultatablasprofes['numero_alumnos'];              
                
$numero_notas $resultadoconsultatablasprofes['numero_notas'];
                
        
$consultatanombrealumno mysql_query("SELECT * FROM nombrealumno WHERE idt='$tabla'");          
          while(
$resultadoconsultatanombrealumno mysql_fetch_array($consultatanombrealumno)){
                  
$nombre_alumno $resultadoconsultatanombrealumno['nombre_alumno'];
                
$ida $resultadoconsultatanombrealumno['ida'];
                
$nombrealumno = array(
                            
"ida"=>"nombrealumno$ida");        
                
          
              echo 
"<tr><td><input value=\"$nombre_alumno\" name=\"$nombrealumno[ida]\" /></td>";
          
            for(
$o=0;$o<$numero_notas;$o++){
                echo 
"<td><input value=\"Valor nota\" /></td>";  }    
                echo
"</tr>";
                echo 
"<input type=\"hidden\" value=\"$tabla\" name=\"idt\" />";
                echo 
"<input type=\"hidden\" value=\"$numero_alumnos\" name=\"numero_alumnos\" />";
                echo 
"<input type=\"hidden\" value=\"$ida\" name=\"ida\" />";
          }
         }
                     
      
?>      
</table><input type="submit" value="Guardar" /></form>
Y luego se ejecuta esto:
Código PHP:
<?php
session_start
();
include (
'../scripts/db.php');

$ida $_POST["ida"];
$idt $_POST["idt"];
$nombrealumno = array(
                            
"ida"=>"nombrealumno$ida");
                                
                            
if (isset(
$_POST["$nombrealumno[ida]"])) {
    
$nom_alumno[ida] = $_POST["$nombrealumno[ida]"];
            
    print 
$nom_alumno[ida];
                    
         }
else{
    echo 
"Que intentes ;)?";    
}
?>
El problema es que en el print solo se muestra el último valor de la array.
He probado y buscado y no me sale la solución, podéis ayudarme (:
  #2 (permalink)  
Antiguo 13/03/2011, 14:25
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Array solo muestra el último valor

Código PHP:
<?php
session_start
();
include (
'../scripts/db.php');

$ida $_POST["ida"];
$idt $_POST["idt"];
$nombrealumno = array(
                            
"ida"=>"nombrealumno$ida"); // en el array estas guardando y sobreescribiendo la clave ida todas las veces.
                                
                            
if (isset($_POST["$nombrealumno[ida]"])) {
    
$nom_alumno[ida] = $_POST["$nombrealumno[ida]"];
            
    print 
$nom_alumno[ida];
                    
         }
else{
    echo 
"Que intentes ;)?";    
}
?>
que es lo que quieres hacer¿?
mejor dicho solo estas guardando una.
  #3 (permalink)  
Antiguo 13/03/2011, 14:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: Gavà
Mensajes: 74
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Array solo muestra el último valor

Ahh, pues lo que quiero es guardar todos los valores enviados por post de nobrealumnos$ida. Podrías explicarme como hacerlo, es que lo intento y lo intento y no me sale
  #4 (permalink)  
Antiguo 13/03/2011, 15:17
 
Fecha de Ingreso: diciembre-2010
Ubicación: Gavà
Mensajes: 74
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Array solo muestra el último valor

He probado a hacer
Código PHP:
Ver original
  1. <?php
  2. include ('../scripts/db.php');
  3.  
  4. $ida = $_POST["ida"];
  5. $idt = $_POST["idt"];
  6. $nombrealumno = array();
  7.                 $l=0;
  8.                 while ($l < count ("nombrealumno$ida")) {
  9.                     $nombrealumno[ida]= "nombrealumno$ida";
  10.                     $l++;
  11.  
  12.                            
  13.                                
  14.                            
  15. if (isset($_POST["$nombrealumno[ida]"])) {
  16.     $nom_alumno[ida] = $_POST["$nombrealumno[ida]"];
  17.            
  18.     print $nom_alumno[ida];
  19.                    
  20.          }
  21. else{
  22.     echo "Que intentes ;)?";   
  23. }}
  24. ?>

Pero lo mismo TT
  #5 (permalink)  
Antiguo 13/03/2011, 15:21
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Array solo muestra el último valor

no puedes pasar un array por post
primero tienes que desarmarlo y pasarlo a string y de alli pasarlo por post.
si deseas ver las notas de un alumno pasa solo el id del alumno y en la pagina que muestra el post llamas de nuevo a la base de datos. con el id del alumno.

quisas pueda ayudate por control remoto y así vemos que es lo que te pasa
  #6 (permalink)  
Antiguo 13/03/2011, 15:56
 
Fecha de Ingreso: diciembre-2010
Ubicación: Gavà
Mensajes: 74
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Array solo muestra el último valor

Te envío los datos por MP!

Etiquetas: devuelve
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 14:07.