Foros del Web » Programando para Internet » PHP »

Variable de un bucle, pierde valor despues de un formulario

Estas en el tema de Variable de un bucle, pierde valor despues de un formulario en el foro de PHP en Foros del Web. Hola que tal, estoy trabajando con un script que tiene varios formularios, la cuestión es que tengo una conexión a una base de datos la ...
  #1 (permalink)  
Antiguo 10/02/2012, 15:02
 
Fecha de Ingreso: junio-2011
Mensajes: 44
Antigüedad: 12 años, 10 meses
Puntos: 2
Variable de un bucle, pierde valor despues de un formulario

Hola que tal, estoy trabajando con un script que tiene varios formularios, la cuestión es que tengo una conexión a una base de datos la cual hago una consulta, quiero almacenar en una variable el valor de un campo, para más tarde hacer una comparación

En el formulario que aparece al pulsar el "submit" la variable llamada "$almacenar" pierde el valor que le que le suministro anteriormente en el "while" del "fecth_row", e intendado hacer varias cosas como declarar la variable de tipo global, tambien he enlazado a una pagina nueva pero desgraciadamente pierde el valor, y para este caso lo necesito para hacer una comparación

Aqui el codigo
Código PHP:
<?php
require("usuario.php");//Redirigido de la pagina usuario.php
    
$j=0;
    
$almacena;
    
//Conectamos a la base de datos para mostrar los registros aletarios del nivel seleccionado
    
$variable $_POST['selecciona'];    
    echo 
"<br><center><h4>Has seleccionado el nivel $variable</h4></center>";
    
$conexion=mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error());
    
mysql_select_db('idioma')or die ('Error al seleccionar la Base de Datos: ');
    
$consulta=mysql_query("use idioma",$conexion);
    
$laselect="select ingles,espanol from datos where nivel='$variable' limit $j,1";
    
$consulta mysql_query($laselect)or die ('La consulta insert falló: ' mysql_error());
    echo
"<center><table border=0><tr><th>Palabra en Ingles</th><th><pre style='display:inline'>    </pre></th><th>Palabra en Español</tr>";
    while (
$registro mysql_fetch_row($consulta))
    {
        echo
"<tr><td>";
        echo 
$registro[0];
        
$almacena=$registro[1]; //variable que comento en la pregunta de este hilo
        
echo"</td><td></td>";
    }    
    
//echo"</table></center>";
    //Formulario para introducir palabras
    //echo "<tr><th>Palabra español</th></tr>";
    
echo "<form action='usuario2.php' method='post' >";            
    echo 
"<td><input type='text' name='palabra' value='' size='20'><br></td></tr></table><br>";
    echo 
"<tr><input type='submit' value='Comprobar' name='comprobar'></tr>";
    echo
"</form></center>";
    echo
"$almacena"//aqui la variable mantiene el valor
    
if ($_POST["comprobar"])
    {
        
$palabra=$_POST["palabra"];
        echo
"La palabra introducida es".$palabra;
        echo
"El resultado de la consulta es".$almacena//aqui ya lo pierde
        /*if ($_POST["palabra"])
        {
            if($palabra==$almacena)
                echo"Correcto ha acertado";
            else
                echo"Ha fallado";
        }*/
    
}
    
?>
Gracias

Un Saludo
  #2 (permalink)  
Antiguo 10/02/2012, 15:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Variable de un bucle, pierde valor despues de un formulario

obviamente lo pierde porque me imagino que al enviar el POST no se envía ningún dato "selecciona" porque no existe en dicho form, por lo tanto es probable que la consulta falle y en consecuencia nunca entra al while al enviar el post

revise los datos enviados por post con var_dump($_POST);
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/02/2012, 15:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Variable de un bucle, pierde valor despues de un formulario

No sé si entiendo bien, pero creo que quieres que una variable anteriormente declarada, al hacer un submit recuperar dicha variable?
De ser así debes saber que las variables de crearn y destruyen cada vez que ejecutas el script, y la única manera de mantenerla sería con cookies, sesiones o bien pasando la variable con el formulario en un campo que puede ser oculto
  #4 (permalink)  
Antiguo 10/02/2012, 16:18
 
Fecha de Ingreso: junio-2011
Mensajes: 44
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Variable de un bucle, pierde valor despues de un formulario

Gracias por contestar
Hola maycolalvarez, la variable "selecciona" viene de otro formulario, y funciona bien,concretamente es un valor de una etiqueta select, que recibe el valor elegido para luego asignarlo
Cita:
obviamente lo pierde porque me imagino que al enviar el POST no se envía ningún dato "selecciona" porque no existe en dicho form, por lo tanto es probable que la consulta falle y en consecuencia nunca entra al while al enviar el post
revise los datos enviados por post con var_dump($_POST);

Cita:
No sé si entiendo bien, pero creo que quieres que una variable anteriormente declarada, al hacer un submit recuperar dicha variable?
De ser así debes saber que las variables de crearn y destruyen cada vez que ejecutas el script, y la única manera de mantenerla sería con cookies, sesiones o bien pasando la variable con el formulario en un campo que puede ser oculto
Hola ocp001a, exacto precisamente es eso lo que quiero, pues sabes lo de pasar la variable a un campo oculto lo habia probado pero no se muy bien como hacerlo y no me salia correctamente, vamos de hecho creo que lo que hice fue asignarlo a un "input" de "type=hidden", lo de las cookies lo veo mucho lio, pero es que lo curioso es que el resto de variables si funcionan tan solo esta que recibe el valor de un while se pierde del formulario si por ejemplo pongo otra variable, como la que tengo llamada "$laselect" pues me devuelve su valor
  #5 (permalink)  
Antiguo 10/02/2012, 17:05
 
Fecha de Ingreso: junio-2011
Mensajes: 44
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Variable de un bucle, pierde valor despues de un formulario

Gracias a todos por la ayuda especialmente a ocp001a, su idea era perfecta para este caso, la solución fue esta añadir esta linea al codigo

Código:
echo "<td><input type='hidden' name='almacenando' value=$almacena><br></td></tr></table><br>";
De tal forma que quedaría asi:
Código PHP:
...
echo 
"<form action='usuario2.php' method='post' >";            
    
//echo "<td><input type='text' name='palabra' value='' size='20'><br></td></tr></table><br>";
    
echo "<td><input type='text' name='palabra' value='' size='20'></td></tr>";
    echo 
"<td><input type='hidden' name='almacenando' value=$almacena><br></td></tr></table><br>";
    echo 
"<tr><input type='submit' value='Comprobar' name='comprobar'></tr>";
    echo
"</form></center>";
    
$n1=$_POST['codigo'];
    
$almacenamiento=$_POST['almacenando'];
... 
Muchas gracias por la ayuda ;)

Etiquetas: bucle, formulario, mysql, pierde, registro, sql, variables, usuarios
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 16:12.