Foros del Web » Programando para Internet » PHP »

Sistema de reservas de hotel

Estas en el tema de Sistema de reservas de hotel en el foro de PHP en Foros del Web. Saludos amigos, como estan, esta vez vengo a pedirle ayuda en un pequeño proyecto que estoy desarrollando sobre un sistema de reservas de habitaciones, estoy ...
  #1 (permalink)  
Antiguo 18/11/2016, 10:17
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Sistema de reservas de hotel

Saludos amigos, como estan, esta vez vengo a pedirle ayuda en un pequeño proyecto que estoy desarrollando sobre un sistema de reservas de habitaciones, estoy trancado en la parte de reservaciones, donde el cliente selecciona la fecha de entrada y salida, y luego hace la busqueda y se muestra un listado de las habitaciones disponibles para reservar, cada fila tiene un ckckbox donde el cliente podra seleciconar una o varias habitaciones si lo desea, estos datos son enviados por jquery, el problema q tengo es como haria para poder recibir esos datos en php, es decir el array de los ckeckbox, aqui tengo la manera de como lo estoy haciendo pero solo me muestra los datos del primer checkbox seleccionado, espero me puedan echar la mano

Código PHP:
Ver original
  1. public function MostrarDetallesReservaciones()
  2.     {
  3.         self::SetNames();
  4.        
  5.     for($i=0;$i<count($_GET['selector']);$i++){
  6.         if (!empty($_GET['selector'][$i])) {
  7.  
  8.         $sql = " select * from habitaciones where codhabitacion = '".$_GET['selector'][$i]."'";
  9.        
  10.         foreach ($this->dbh->query($sql) as $row)
  11.         {
  12.             $this->p[] = $row;
  13.         }
  14.         return $this->p;
  15.         $this->dbh=null;
  16.         }
  17.     }
  18. }
  #2 (permalink)  
Antiguo 18/11/2016, 10:40
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Sistema de reservas de hotel

Puedes mostrar cómo tienes los checkbox?
Recuerda que deben tener un name diferente o ser un Array.
Debería ser algo como:
Código HTML:
Ver original
  1. <input type="checkbox" name="selector[]" value="xxx">


Yo los pasaría como Array y utilizaría un foreach para recorrerlo y construir la consulta dinamicamente, después ejecutar la consulta una sola vez fuera del bucle.
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 18/11/2016, 10:48
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

muchas gracias por responder, y si asi tengo el campo

Código HTML:
Ver original
  1. <input name="selector[]" id="selector_<?php echo $a; ?>" value="<?php echo $bus[$i]['codhabitacion']; ?>" type="checkbox" class="selector">


el problema es ando algo errado como diria yo, porq yo selecciono los checkbox y hago el envio por jquery del formulario, entonces el error que acabo de verificar es como recibir por php ese array, tengo la funcion q recibe por jquery asi

Código PHP:
Ver original
  1. <?php
  2. ############################# MUESTRA HABITACIONES RESERVADAS #############################################
  3. if (isset($_GET['BuscaHabitacionesReservadas']) && isset($_GET['desde']) && isset($_GET['hasta']) && isset($_GET['selector'])) {
  4.  
  5. $desde = $_GET['desde'];
  6. $hasta = $_GET['hasta'];
  7. $codhabitacion = $_GET['selector'];
  8.        
  9.  
  10.                
  11. }
  12. ?>
  #4 (permalink)  
Antiguo 18/11/2016, 12:28
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Sistema de reservas de hotel

Haz un print_r o var_dump a $_GET['selector'] para comprobar que estas recibiendo, enséñanos el resultado y a partir de ahí intentamos ver donde es el fallo entonces.
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 18/11/2016, 12:44
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

el valor que recibo de selector es este

Código PHP:
Ver original
  1. Array ( [0] => H00001 [1] => H00002 )
  #6 (permalink)  
Antiguo 18/11/2016, 19:20
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Sistema de reservas de hotel

Pues intenta hacer algo como esto para construir tu consulta. Los datos en principio llegan bien.

Código PHP:
Ver original
  1. $sql="SELECT * FROM habitaciones ";
  2.  
  3. foreach ( $_GET['selector'] as $key => $value ){
  4.     if ( 0==$key ){
  5.         $sql.=" WHERE codhabitacion='$value' ";
  6.     }else {
  7.         $sql.=" OR codhabitacion='$value' ";
  8.     }
  9. }

Aun que aquí no lo he puesto, los datos deberían ser escapados para evitar inyección sql.
__________________
Unset($vida['malRollo']);
  #7 (permalink)  
Antiguo 18/11/2016, 19:26
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

no amigo aun nada, me muestra solamente el primer valor, lo he colocado asi


Código PHP:
Ver original
  1. $sql="SELECT * FROM habitaciones ";
  2.  
  3. foreach ( $_GET['selector'] as $key => $value ){
  4.     if ( 0==$key ){
  5.    
  6.         $sql.=" WHERE codhabitacion='$value' ";
  7.        
  8.     }else {
  9.    
  10.         $sql.=" OR codhabitacion='$value' ";
  11.        
  12.     }
  13.    
  14.         foreach ($this->dbh->query($sql) as $row)
  15.         {
  16.             $this->p[] = $row;
  17.         }
  18.         return $this->p;
  19.         $this->dbh=null;
  20.        
  21.     }
  #8 (permalink)  
Antiguo 18/11/2016, 19:54
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Sistema de reservas de hotel

No debes de anidar los foreach, la idea es construir la sentencia y luego ejecutarla una sola vez.

Puedes decirnos que contiene la variable $sql después del foreach para ver que la sentencia que se construye es valida?

Es posible que sólo te retorne un valor por qué sólo existe uno en la base de datos?
__________________
Unset($vida['malRollo']);
  #9 (permalink)  
Antiguo 18/11/2016, 20:14
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

disculpa amigo en verdad, la verdad no entiendo como hacer como tu dices, para poder obtener los valores de la db
  #10 (permalink)  
Antiguo 18/11/2016, 20:17
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

lo que me recibe en la variable $sql es esto

Código SQL:
Ver original
  1. SELECT * FROM habitaciones WHERE codhabitacion='H00001' SELECT * FROM habitaciones WHERE codhabitacion='H00001' OR codhabitacion='H00002'
  #11 (permalink)  
Antiguo 18/11/2016, 20:32
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

el valor que me muestra la variable $sql es este, ya que lo habia colocado dentro del foreach y me mostrba las 3 pero ahora fuera del foreach me muestra esta

Código SQL:
Ver original
  1. SELECT * FROM habitaciones WHERE codhabitacion='H00001' OR codhabitacion='H00002'
  #12 (permalink)  
Antiguo 18/11/2016, 20:50
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

amigo te cuento ya logre solucionar la consulta, de la manera como tu lo hacías era la correcta, solo tuve que agregarle el while para mostrar los resultados y listo, el código quedo de la siguiente manera

Código PHP:
Ver original
  1. public function MostrarDetallesReservaciones()
  2.     {
  3.         self::SetNames();
  4.         $sql="SELECT * FROM habitaciones ";
  5.  
  6. foreach ( $_GET['selector'] as $key => $value ){
  7.  
  8.               if ( 0==$key ){
  9.         $sql.=" WHERE codhabitacion='$value' ";
  10.               } else {
  11.         $sql.=" OR codhabitacion='$value' ";
  12.               }
  13.    
  14.  }
  15.         $stmt = $this->dbh->prepare($sql);
  16.         $stmt->execute();
  17.             while($row = $stmt->fetch())
  18.             {
  19.                 $this->p[]=$row;
  20.             }
  21.             return $this->p;
  22.             $this->dbh=null;   
  23. }
  #13 (permalink)  
Antiguo 28/11/2016, 23:06
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Sistema de reservas de hotel

buenas noches, disculpe que continue con este tema, pero e querido crear un nuevo tema y no me deja crearlo la pagina se queda en blanco al validar el catpcha,

Y necesito de su ayuda si pueden por favor, tengo una funcion pdo donde hago varias consultas y al final obtengo una variable $pago += $costo; donde quisiera mostrar el valor de esta variable en otro archivo, e leido sobre retormar la variable y pasarla a otra uncion pero la verdad no entiendo bien de q manera se refiere, aqui le dejo la funcion que tengo


Código PHP:
Ver original
  1. public function MostrarDetallesReservaciones()
  2.     {
  3.         self::SetNames();
  4.         $sql = " select
  5.      habitaciones.numhabitacion,
  6.      habitaciones.codtarifa,
  7.      tiposhabitaciones.nombretipo,
  8.      tarifas.baja,
  9.      tarifas.media,
  10.      tarifas.alta
  11.        from habitaciones, tiposhabitaciones, tarifas
  12.        where
  13.      habitaciones.numhabitacion = '".$_GET["check"]."' and
  14.      habitaciones.codtarifa = tarifas.codtarifa and
  15.      tarifas.codtipo = tiposhabitaciones.codtipo";
  16.         foreach ($this->dbh->query($sql) as $row)
  17.         {
  18.             $this->p[] = $row;
  19.         }
  20.         return $this->p;
  21.         $this->dbh=null;
  22.         $codtarifa = $row['codtarifa'];
  23.        
  24.         $sql2 = " select * from tarifas
  25.    where codtarifa = '".$codtarifa."'";
  26.         foreach ($this->dbh->query($sql2) as $row2)
  27.         {
  28.             $this->p2[] = $row2;
  29.         }
  30.        
  31.        
  32.         $inicio = $_GET["desde"];
  33.         $fin = $_GET["hasta"];
  34.         $pago = 0;
  35.            
  36.       while($inicio <= $fin) {
  37.        
  38.         $sql3 = " select temporada from temporadas
  39.    where desde <= '".$inicio."' and hasta >= '".$inicio."'";
  40.         foreach ($this->dbh->query($sql3) as $row3)
  41.         {
  42.             $this->p3[] = $row3;
  43.         }
  44.        
  45.        
  46.        
  47. if($row3['temporada']=='BAJA') {
  48.    $costo = $row2['baja'];
  49.   } elseif($row3['temporada']=='MEDIA') {
  50.    $costo = $row2['media'];
  51.   } elseif($row3['temporada']=='ALTA') {
  52.    $costo = $row2['alta'];
  53.   }
  54.        
  55.        
  56.       //ESTA ES LA VARIABLE QUE DESEO ENVIAR A OTRO ARCHIVO
  57.        $pago += $costo;
  58.        
  59.        }   
  60. }

como pueden ver al final de dicha funcion tengo esta variable $pago += $costo; la cual es esa la que deseo mostrar en otro archivo, espero me puedan ayudar, se lo agradezco

Etiquetas: hotel, reservas, sistema
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 18:45.