Foros del Web » Programando para Internet » PHP »

Control de reservas y problema al imprimir variable via get

Estas en el tema de Control de reservas y problema al imprimir variable via get en el foro de PHP en Foros del Web. Hola, estoy haciendo un proyecto en el que hay unas reservas de habitaciones. Me lo he tomado como un carrito de compras, la funcionalidad esta ...
  #1 (permalink)  
Antiguo 18/03/2014, 04:34
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Control de reservas y problema al imprimir variable via get

Hola, estoy haciendo un proyecto en el que hay unas reservas de habitaciones.

Me lo he tomado como un carrito de compras, la funcionalidad esta hecha, solo tengo un fallo a la hora de recoger la fecha.

Envio tres variables via get, el id del producto, la accion y la fecha de entrada. En este caso solo hay fecha de entrada, y no hay control de habitaciones. Lo que me falla es que al intentar imprimir la fecha escogida para cada caso en el archivo que hace de carrito siempre me imprime la ultima fecha escogida, y me lo hace en todos los casos. Es decir, si estoy intentando reservar tres habitaciones, la fecha de cada item del carro (de cada habitacion elegida) siempre es la del ultimo item agregado. Seguramente sera una tonteria pero no se me ocurre como hacerlo.

Archivo index.php:

Código PHP:
Ver original
  1. if(isset($_SESSION["carro"])):
  2.     $totalCoste = 0;
  3.     $Total = 0;
  4.  
  5. foreach($_SESSION["carro"] as $key=>$valor):
  6.     $fecha = $_GET["date"];
  7.     $fi = $obj->getRoomsId($key);
  8.    
  9. // aqui recorro la tabla para traerme la info de las habitaciones, pero al no tener la fecha guardada, no se como recorrer la que viene via get para cada "sitio"                                  
  10.     foreach($fi as $fila):
  11.         $id = $fila["albergue_id"];
  12.         $room = $fila["albergue_nombre"];
  13.             $precio = $fila["albergue_precio"];
  14.                                                
  15.        endforeach;
  16.                                                
  17.       $coste = $precio * $valor;
  18.       $totalCoste = $totalCoste + $coste;
  19.       $Total = $Total + $valor;

Por otro lado tengo el archivo carro.php:

Código PHP:
Ver original
  1. public function procesaCarro(){
  2.                    
  3.         if(isset($_GET['id'])){
  4.             $id = $_GET['id'];
  5.             $id = (int) $id;
  6.         }else{
  7.             $id = 1;
  8.         }
  9.        
  10.         if(isset($_GET["url"])) {
  11.             $url = $_GET["url"];
  12.         }
  13.        
  14.         if(!is_array($_SESSION["carro"]))
  15.             $_SESSION["carro"] = Array();
  16.            
  17.         if(isset($_GET['action']))
  18.             $action = $_GET['action'];
  19.         else
  20.             $action = '';
  21.            
  22.         switch ($action) {
  23.            
  24.             case 'add':
  25.            
  26.                 if(isset($_SESSION['carro'][$id]))
  27.                    
  28.                     $_SESSION['carro'][$id]++;
  29.                 else
  30.                     $_SESSION['carro'][$id] = 1;
  31.            
  32.                 break;
  33.                
  34.             case 'remove':
  35.            
  36.                 if(isset($_SESSION['carro'][$id]))
  37.                 {
  38.                     $_SESSION['carro'][$id]--;
  39.                    
  40.                     if($_SESSION['carro'][$id] == 0)
  41.                         unset($_SESSION['carro'][$id]);
  42.                 }
  43.            
  44.                 break; 
  45.  
  46.             case 'removeProd':
  47.            
  48.                 if(isset($_SESSION['carro'][$id]))
  49.                 {
  50.                     unset($_SESSION['carro'][$id]);
  51.                 }
  52.            
  53.                 break;
  54.                
  55.             case 'empty':
  56.                
  57.                 unset($_SESSION['carro'][$id]);
  58.                
  59.                 break;     
  60.            
  61.         }
  62.            
  63.     }
  #2 (permalink)  
Antiguo 18/03/2014, 05:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Control de reservas y problema al imprimir variable via get

Con lo que nos muestras, no se puede saber que estas haciendo... o eso creo. Ni index.ph ni carro.php son solo lo que muestras.

La única aparición de fecha es una signación del valor que llega por $_GET luego dificilmente variará....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 18/03/2014, 05:13
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Si carro esta completo, en el caso de index faltan operaciones que hago pero no creo que tengan que ver con lo de la fecha.

Tengo un form a traves del cual envio todas las variables, con campos hidden....

El caso es ese precisamente, recojo la fecha via get pero no se como tratarla para que me imprima cada vez la fecha que corresponda al item de la habitacion.
  #4 (permalink)  
Antiguo 18/03/2014, 05:31
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Yo te recomiendo cojer los datos mediante post y despues mostrarlos mediante get, y con que solo cojar el id mediante get ya te muestra todo de ese id y podras hacer lo que quieras con el, editar, eliminar, etc...
  #5 (permalink)  
Antiguo 18/03/2014, 05:44
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Si me pudieras poner un ejemplo te lo agradeceria mucho

Un saludo.
  #6 (permalink)  
Antiguo 18/03/2014, 05:55
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Solo tendrias que crear un formulario con metodo "post" y reojer los datos y meterlos en la base de datos, que por cierto no se si utilizas. Pero supongo que sabras recojer los datos por post, si no, dimelo y te digo.

Para después para recojerlo mediante GET, un ejemplo:

Supongamos que lo quieres ver con url <a href="index.php?id=aqui_el_id">Ver</a>

Código:
<?php

if(!empty($_GET['id'])) {

$verf_db = mysql_query('SELECT * FROM tabla WHERE id = "'.$_GET['id'].'"');
$rs = mysql_fetch_assoc($verf_db);

}

?>
Con eso sacarias todo con el id que le digas en la url con GET = id.

Para mostrar seria, ejemplo:

$rs['nombre']
$rs['precio']
$rs['fecha']

Espero que te se ayuda, cualquier cosa dime.

Saludos.
  #7 (permalink)  
Antiguo 18/03/2014, 06:05
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Gracias por tu respuesta.

La cosa que eso ya lo tengo, es decir, el usuario llega a la pagina de la habitacion, mete en un input la fecha y le da a reservar, por get envio el id de la habitacion, la accion(sumar, restar) y el valor del campo input con la fecha.

Luego recorro la tabla y saco la info de la habitacion por id (id, nombre, precio, etc), y voy mostrando en una tabla que hace de carrito cada item elegido, el problema que tengo que la fecha no se guarda en ninguna tabla, viene via get y no se como recogerla para luego asignar cada fecha al id que corresponda, no se si me explico jeje.
  #8 (permalink)  
Antiguo 18/03/2014, 06:12
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Podrias mostrar como tienes la fecha en tu base de datos y como la recojes para ver que falla al meterla.
  #9 (permalink)  
Antiguo 18/03/2014, 06:32
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

No, no, si de momento no quiero meterla en una base de datos, te explico:

Recojo la fecha con un campo input (y las otras variables )y la envio via get a carrito-de-compras.php.

La fecha llega correctamente por la url a ese archivo, que es donde tengo digamos la factura del carrito para ya darle a reservar y pagar.

Recojo esa fecha mediante $fecha = $_GET["date"], y luego la imprimo con un echo, a partir de aqui ya no se como tratarla.

habitacion 1 1cama fecha de reserva

habitacion 3 1cama fecha de reserva

habitacion 40 2cama fecha de reserva

fecha de reserva me repite la de la ultima habitacion que se reservo en todas las filas, y yo lo que quiero es que cada fecha sea la asignada, obviamente al recogerla con $_get me devuelve en todos casos la ultima....

Gracias por tu interes, de verdad
  #10 (permalink)  
Antiguo 18/03/2014, 06:40
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Cuando cojes esa variable $fecha y la imprimes siges en el mismo archivo para después seguir con esa fecha o intentas sacarla en otro archivo? Por que si utilizas el mismo archivo puedes seguir usando la variable $fecha y si te devuelve el último es porque tienes que crear un bucle para sacar todas las fechas que tienes.
  #11 (permalink)  
Antiguo 18/03/2014, 07:01
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Si, eso es lo que pensaba yo, sigo en el mismo archivo, la cosa es ya estoy espesisimo y no soy capaz de hacer ese bucle...
  #12 (permalink)  
Antiguo 18/03/2014, 07:50
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

El bucle lo sacas haciendo una consulta a la tabla y con un while sacas todos los datos, ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $consulta = mysql_query('SELECT * FROM tabla');
  4.  
  5. while($resultado = mysql_fetch_assoc($consulta)) {
  6.  
  7. echo $resultado['fecha'].'<br />';
  8.  
  9. }
  10.  
  11. ?>

Con eso veras que te mostrará todas las fechas que tienes en la tabla.
  #13 (permalink)  
Antiguo 18/03/2014, 08:00
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

MaNuX0218 no tengo las fechas en una tabla, solo las recibo via get cada vez que un usuario reserva una habitación, por eso no me sale el bucle, si fuera consultar a una tabla no tendria problemas..

Gracias, a ver si damos con ello...
  #14 (permalink)  
Antiguo 18/03/2014, 08:10
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Ah vale jejeje pues mira creo que esto sera la solución a tu problema, eso espero...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $numero = count($_GET);
  4. $tags = array_keys($_GET); // obtiene los nombres de las varibles
  5. $valores = array_values($_GET); // obtiene los valores de las varibles
  6.  
  7. // crea las variables y les asigna el valor
  8.  
  9. for($i=0; $i < $numero; $i++){
  10.  
  11. $$tags[$i] = $valores[$i];
  12.  
  13. }
  14.  
  15. ?>

Ahora solo hay que llamar las variables por su nombre
ej: http://misitio.com/estearchivo.php?usuario=manux&fecha=2014-02-10

Y ahora para verlas solo pones la variable por su nombre

Nombre de usuario: $usuario
Fecha: $fecha

De momento es lo que se me ocurre y creo que esto deveria funcionarte. Dime cosas.

Saludos.
  #15 (permalink)  
Antiguo 18/03/2014, 08:55
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Pues si que es dificil la cosa jeje:

Mira me devuelve la misma fecha, las mismas veces que articulos tengo.... es decir, que si he agregado 4 habitaciones con 4 fechas distintas al carrito de comprar, esto me devuelve 4 veces la ultima fecha enviada.... pufff
  #16 (permalink)  
Antiguo 18/03/2014, 08:58
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

No te funcionó el último código que te e pasado? :S Raro eh! Y bueno si no te ha funcionado pensaré algo ahora mismo no se me ocurre nada.

Tendría que ver todo los archivos que utilizas y revisar todo el código.
  #17 (permalink)  
Antiguo 18/03/2014, 09:06
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Es como si solo guardara la ultima fecha que llega y las otras no... no se si al recibir cada una tendria que guardarlas de alguna manera...
  #18 (permalink)  
Antiguo 18/03/2014, 09:17
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Yo te pongo el codigo por si acaso

en index.php

Código PHP:
Ver original
  1. <form name="form" action="carrito.php" method="get"/>
  2. <input id="datepicker" class="s" type="text" name="date" required />
  3. <input type="hidden" id="id" name="id" value="<?php echo $datos[0["albergue_id"]?>" />
  4. <input type="hidden" id="action" name="action" value="add" />
  5. <input type="hidden" name="url" value="<?php echo $url;?>" />
  6. <input type="submit" value="enviar" />

En carrito.php
Código PHP:
Ver original
  1. require_once '../application/Bootstrap.php';
  2. require_once ROOT . 'site/albergues.php';
  3. require_once ROOT . 'site/carro.php';
  4.  
  5. $config = new Carro();
  6. $obj = new Propiedades();
  7. $config->procesaCarro();
  8.  
  9. if(isset($_SESSION["carro"])):
  10.     $totalCoste = 0;
  11.     $Total = 0;
  12.  
  13. foreach($_SESSION["carro"] as $key=>$valor):
  14.                                            
  15.                                            
  16.                                            
  17. $fi = $obj->getRoomsId($key);
  18.                                                
  19. foreach($fi as $fila):
  20.   $id = $fila["albergue_id"];
  21.   $room = $fila["albergue_nombre"];
  22.   $precio = $fila["albergue_precio"];
  23.                                                    
  24. endforeach;
  25.                                                
  26. $coste = $precio * $valor;
  27. $totalCoste = $totalCoste + $coste;
  28. $Total = $Total + $valor;
  29.                                    
  30.     //AQUI EL CODIGO HTML
  31.        //CIERRO TODAS LOS CICLOS
  32.                                
  33. ?>
  34.  
  35.  
  36. Y en site/carro.php

Código PHP:
Ver original
  1. public function procesaCarro(){
  2.        
  3.         if(isset($_GET)){
  4.             $input_arr = array();
  5.             foreach ($_GET as $key => $input_arr) {
  6.                 $_GET[$key] = addslashes($this->limpiarCadena($input_arr));    
  7.             }
  8.         }
  9.            
  10.         if(isset($_GET['id'])){
  11.             $id = $_GET['id'];
  12.             $id = (int) $id;
  13.         }else{
  14.             $id = 1;
  15.         }
  16.        
  17.         if(isset($_GET["url"])) {
  18.             $url = $_GET["url"];
  19.         }
  20.        
  21.    
  22.        
  23.         if(!is_array($_SESSION["carro"]))
  24.             $_SESSION["carro"] = Array();
  25.            
  26.         if(isset($_GET['action']))
  27.             $action = $_GET['action'];
  28.         else
  29.             $action = '';
  30.            
  31.         switch ($action) {
  32.            
  33.             case 'add':
  34.            
  35.                 if(isset($_SESSION['carro'][$id])){
  36.                    
  37.                     $_SESSION['carro'][$id]++;
  38.                    
  39.                    
  40.                 }else
  41.                     $_SESSION['carro'][$id] = 1;
  42.            
  43.                 break;
  44.                
  45.             case 'remove':
  46.            
  47.                 if(isset($_SESSION['carro'][$id]))
  48.                 {
  49.                     $_SESSION['carro'][$id]--;
  50.                    
  51.                     if($_SESSION['carro'][$id] == 0)
  52.                         unset($_SESSION['carro'][$id]);
  53.                 }
  54.            
  55.                 break; 
  56.  
  57.             case 'removeProd':
  58.            
  59.                 if(isset($_SESSION['carro'][$id]))
  60.                 {
  61.                     unset($_SESSION['carro'][$id]);
  62.                 }
  63.            
  64.                 break;
  65.                
  66.             case 'empty':
  67.                
  68.                 unset($_SESSION['carro'][$id]);
  69.                
  70.                 break;     
  71.            
  72.         }
  73.            
  74.     }
  #19 (permalink)  
Antiguo 18/03/2014, 14:11
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Control de reservas y problema al imprimir variable via get

Indicame la línea, por que no veo donde recojes la fecha, solo veo que lo tienes como oculto en un input y yasta.
  #20 (permalink)  
Antiguo 18/03/2014, 18:23
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Control de reservas y problema al imprimir variable via get

Lo primero gracias por tu insistencia, te lo agradezco mucho.

La fecha la recojo en el mismo input, lo tipico de que al hacer click sale un calendario y eliges la fecha, ese input no esta oculto.

Luego en el archivo carrito.php es donde recibo esa variable via get y donde estoy probando todo lo que me estas diciendo.

Gracias

Etiquetas: control, fecha, reservas, tabla, variable
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 17:40.