Foros del Web » Programando para Internet » PHP »

Conservar valor de variables

Estas en el tema de Conservar valor de variables en el foro de PHP en Foros del Web. Hola queria ver si me podrian sacar de esta duda yo no se mucho sobre php asi que ojala me puedan ayudar les hablare un ...
  #1 (permalink)  
Antiguo 30/07/2011, 23:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Conservar valor de variables

Hola
queria ver si me podrian sacar de esta duda
yo no se mucho sobre php asi que ojala me puedan ayudar

les hablare un poco del codigo:
Tengo una pagina que es como una especie de loteria
donde uno compra su numero y despues se hace un sorteo

la pagina que mostrare a continuacion es sobre el sorteo donde al presionar el boton sortear este saca todos los valores que estan como vendidos('SOLD'),que vendrian siendo los boletos, de la base de datos y los guardo en un array donde posteriormente ocupo un rand para sacar un valor aleatorio
el resultado de este rand lo guardo en variables que despues muestro en un input
hasta ahi todo bien

el problema es que son tres botones para tres ganadores distintos
al apretar cualquiera de los botones el script funciona perfectamente
pero al apretar una segunda vez se pierde el valor del primer boton presionado
es decir cuando aprieto en el boton "Ganador 1" el programa me imprime el nombre del ganador con el numero del boleto en el input sin problemas
pero al apretar el boton "Ganador 2" se pierde el valor del primer input

entonces respecto a esto quisiera saber si
¿hay alguna forma de no perder el valor del primer input cuando aprieto el boton del segundo ganador?

y si no se puede hacer algo asi
¿que me recomendarian hacer para solucionar esto?

espero no haber enredado mucho
de antemano gracias

Código PHP:
Ver original
  1. <?php
  2. include("session_check.php");
  3. include("funciones.php");
  4.     $conexion = conectarBD();
  5.  
  6.     $consulta = "SELECT NUMEROS FROM datos WHERE ESTADO = 'SOLD'";
  7.     $resultado = mysql_query($consulta,$conexion);
  8.         while ($registro = mysql_fetch_array($resultado)) {
  9.             $datos[] = $registro['NUMEROS'];
  10.         }
  11.             if (isset($_POST['sorteoUno'])) {
  12.                 shuffle($datos);
  13.                 $random = array_rand($datos,1);
  14.  
  15.                 $consulta = "SELECT NOMBRE FROM datos WHERE NUMEROS = ".$datos[$random];
  16.                 $resultado = mysql_query($consulta,$conexion);
  17.                 $registro = mysql_fetch_array($resultado);
  18.                
  19.                 $ganadorUnoNumero = $datos[$random];
  20.                 $ganadorUnoNombre = $registro['NOMBRE'];
  21.             }
  22.             if (isset($_POST['sorteoDos'])) {
  23.                 shuffle($datos);
  24.                 $random = array_rand($datos,1);
  25.  
  26.                 $consulta = "SELECT NOMBRE FROM datos WHERE NUMEROS = ".$datos[$random];
  27.                 $resultado = mysql_query($consulta,$conexion);
  28.                 $registro = mysql_fetch_array($resultado);
  29.                
  30.                 $ganadorDosNumero = $datos[$random];
  31.                 $ganadorDosNombre = $registro['NOMBRE'];
  32.  
  33.             }
  34.             if (isset($_POST['sorteoTres'])) {
  35.                 shuffle($datos);
  36.                 $random = array_rand($datos,1);
  37.  
  38.                 $consulta = "SELECT NOMBRE FROM datos WHERE NUMEROS = ".$datos[$random];
  39.                 $resultado = mysql_query($consulta,$conexion);
  40.                 $registro = mysql_fetch_array($resultado);
  41.                
  42.                 $ganadorTresNumero = $datos[$random];
  43.                 $ganadorTresNombre = $registro['NOMBRE'];
  44.  
  45.             }
  46. ?>
  47. <html>
  48. <head>
  49. <title>Sorteo</title>
  50. <link rel="stylesheet" type="text/css" href="css/estilos.css" media="screen" />
  51. </head>
  52. <body>
  53. <ul class="menu">
  54.     <li><a href="rifa.php" title="Rifa Actual">Rifa Actual</a></li>
  55.     <li><a href="crearRifa.php" title="Crear Nueva Rifa">Crear Nueva Rifa</a></li>
  56.     <li><a href="sorteo.php" title="Sorteo">Sorteo</a></li>
  57.     <li><a href="password_change.php" title="Cambiar Contrase&ntilde;a">Cambiar Contrase&ntilde;a</a></li>
  58.     <li><a href="logout.php" title="Cerrar Sesi&oacute;n">Cerrar Sesi&oacute;n</a></li>
  59. </ul>
  60. <div class="espacio"></div>
  61. <form name="formulario" method="post" action="sorteo.php">
  62.         <?php
  63.             $consulta_numeros = "SELECT * FROM datos";
  64.             $resultado_numeros = mysql_query($consulta_numeros,$conexion);
  65.            
  66.             $consulta_vendidos = "SELECT NUMEROS FROM datos WHERE ESTADO = 'SOLD'";
  67.             $resultado_vendidos = mysql_query($consulta_vendidos,$conexion);
  68.            
  69.                 if(mysql_num_rows($resultado_numeros) != 0 && mysql_num_rows($resultado_vendidos) >= 5){
  70.         ?> 
  71.                     <div id="sorteo">
  72.                         <p>Ganador 1:<input class="sorteo" type="submit" name="sorteoUno" value="Ganador 1">
  73.                                     <input class="sorteo" type="text" name="ganadorUno" readonly="readonly" value="<?php if (isset($ganadorUnoNombre)) echo $ganadorUnoNombre;?>">
  74.                                     Nº<input class="sorteoNumero" type="text" name="ganadornumeroUno" readonly="readonly" value="<?php if (isset($ganadorUnoNumero)) echo $ganadorUnoNumero;?>"></p>
  75.                        
  76.                         <p>Ganador 2:<input class="sorteo" type="submit" name="sorteoDos" value="Ganador 2">
  77.                                     <input class="sorteo" type="text" name="ganadorDos" readonly="readonly" value="<?php if (isset($ganadorDosNombre)) echo $ganadorDosNombre;?>">
  78.                                     Nº<input class="sorteoNumero" type="text" name="numeroUno" size="1" readonly="readonly" value="<?php if (isset($ganadorDosNumero)) echo $ganadorDosNumero;?>"></p>
  79.                        
  80.                         <p>Ganador 3:<input class="sorteo" type="submit" name="sorteoTres" value="Ganador 3">
  81.                                 <input class="sorteo" type="text" name="ganadorTres" readonly="readonly" value="<?php if (isset($ganadorTresNombre)) echo $ganadorTresNombre;?>">
  82.                         &nbsp;Nº<input class="sorteoNumero" type="text" name="numeroUno" size="1" readonly="readonly" value="<?php if (isset($ganadorTresNumero)) echo $ganadorTresNumero;?>"></p> 
  83.                     </div>
  84.         <?php
  85.                 }
  86.                 else if(mysql_num_rows($resultado_numeros) == 0){
  87.         ?>
  88.                     <div id="crearRifa">No se ha creado ninguna rifa. Para crear una haga click <a href="crearRifa.php">aqu&iacute;</a>.</div>
  89.         <?php
  90.                 }
  91.                 else if(mysql_num_rows($resultado_vendidos) < 5){
  92.         ?>
  93.                     <div id="crearRifa">No se puede realizar el sorteo. Deben haber al menos 5 n&uacute;meros comprados. Para comprar n&uacute;meros haga click <a href="rifa.php">aqu&iacute;</a>.</div>
  94.         <?php
  95.                 }
  96.         ?>
  97. </form>
  98. </body>
  99. </html>
  #2 (permalink)  
Antiguo 01/08/2011, 07:56
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 7 meses
Puntos: 26
Respuesta: Conservar valor de variables

En vez de hacer esto:
Código PHP:
Ver original
  1. $ganadorTresNumero = $datos[$random];
  2. $ganadorTresNombre = $registro['NOMBRE'];
Por qué no te usas variables de sesión ? quedarán ahí como cookies.
Las declararías así cuando las necesites:
Código PHP:
Ver original
  1. $_SESSION['ganadorXnro'] = nro_ganador;
  2. $_SESSION['ganadorXnombre'] = nombre_ganador;
  #3 (permalink)  
Antiguo 01/08/2011, 11:08
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Conservar valor de variables

Cita:
Iniciado por ramiro_md Ver Mensaje
En vez de hacer esto:
Código PHP:
Ver original
  1. $ganadorTresNumero = $datos[$random];
  2. $ganadorTresNombre = $registro['NOMBRE'];
Por qué no te usas variables de sesión ? quedarán ahí como cookies.
Las declararías así cuando las necesites:
Código PHP:
Ver original
  1. $_SESSION['ganadorXnro'] = nro_ganador;
  2. $_SESSION['ganadorXnombre'] = nombre_ganador;
muchas gracias por tu respuesta ramiro
sabes que probe la opcion que me comentas y funciona
pero ahora tengo otro problema
si creo un concurso nuevo y entro nuevamente a la seccion de sorteo (sin cerrar la sesion)
el programa automaticamente me imprime los nombres y el numero del sorteo anterior
¿sabes como puedo solucionar eso?
  #4 (permalink)  
Antiguo 01/08/2011, 11:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Conservar valor de variables

lo solucione dandole un session_unset cuando entre a otra pagina
muchas gracias por tu ayuda

Etiquetas: conservar, html, mysql, registro, sql, variables, formulario
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 20:02.