Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2009, 07:00
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Hola a todos/as. estoy atascada. os cuento. tengo una pequeña aplicación de sistemas de reservas. la base de datos del sistema entre otras muchas tablas tiene dos que son básicas para este sistema:

tabla 'habitaciones'
para simplificar diremos que tiene estos 3 campos:
idhabitacion----autonumerico
habitacion------tipo de habitacion (individual, doble, etc...)
cantidad--------número de habitaciones que hay de cada tipo

tabla 'reservas'
para simplificar diremos que tiene estos campos:
idreserva-------autonumerico
dia---------------recoge el día de la reserva (ahora explico su funcionamiento)
codigoreserva-codigo exclusivo que se genera automáticamente para cada reserva
habitacionid---habitacion a reservar (es el idhabitacion anterior. identifica al tipo de habitacion)
cantidad-------número de habitaciones de ese tipo a reservar

El sistema genera un código de reserva automático que va al campo codigoreserva y que es exclusivo para cada reserva. así tenemos que si una reserva tiene estos datos:

Fecha de entrada: 02-03-2009
Fecha de salida: 04-03-2009
Habitación: Individual
Número de habitaciones (o cantidad de habitaciones de ese tipo a reservar): 2

en la base de datos, en la tabla 'reservas' tendremos:

idreserva-1
día-02-03-2009
codigo reserva-5698632(generado automáticamente)
habitacionid-1
cantidad-1

idreserva-2
día-03-03-2009
codigo reserva-5698632(generado automáticamente)
habitacionid-1
cantidad-1

el día 04-03-2009 ya no generaría un nuevo campo porque el sistema desprecia el último día de la reserva al considerar que ese día es cuando se van y queda vacante.

bien. supongamos este ejemplo en cuestión. supongamos que de la habitación individual hay 2 habitaciones. la tabla 'habitaciones' tendría:
idhabitacion-1
tipo-Individual
cantidad-2

esta reserva motivaría que en esa misma fecha yo podría hacer otra reserva por otra habitación más en ese tipo de habitación, en la Individual, ya que hay 2 habitaciones de este tipo en el sistema. cómo valido yo todo esto? pues digo lo siguiente:

Código PHP:
$fechaen $_POST['fechaen'];
$fechasal $_POST['fechasal'];    
$habitacion $_POST['habitacion'];
$cantidad trim($_POST['cantidad']);

//consulta a la tabla habitaciones
$sql "SELECT * FROM habitaciones where idhabitacion='$habitacion'"
$result mysql_query($sql) or die (mysql_error()); 
$datos mysql_fetch_assoc($result);  


//consulta a la tabla reservas
$sqlrestot "SELECT COUNT(cantidad) AS totalreservas FROM reserva WHERE habitacionid='$habitacion' GROUP BY codigoreserva"
$resultrestot mysql_query($sqlrestot) or die (mysql_error()); 
$datosrestot mysql_fetch_assoc($resultrestot); 
ya tengo las consultas realizadas. ahora comienzo con las validaciones:

Código PHP:
$reservastotal $datosrestot ['totalreservas'];
$reservaslibresfec $datos ['cantidad'] - $reservastotal;

//Primera validación: Que haya habitaciones disponibles de ese tipo
//Si la variable $reservaslibresfec es cero es porque no tenemos disponibilidad
if ($reservaslibresfec==0){
echo 
"Todas las habitaciones tipo $datos[tipo] están ocupadas";



//Segunda validación: que la cantidad que quiero reservar exista, es decir,
//supongamos que yo quiero reservar 5 individuales pero si en todo el sistema
//el número de individuales es 2 me debe dar un mensaje diciendo que sólamente
//hay 2 habitaciones de tipo individual en el sistema

elseif ($cantidad $datos ['cantidad']) {
echo 
"Sólamente tenemos $datos[cantidad] habitaciones de ese tipo";


//Tercera validación: que en esas mismas fechas (una reserva tiene para todos
//sus días el mismo código de reserva) haya alguna disponibilidad. Por ejemplo
//de un mensaje diciendo que en esas fechas sólo hay disponible una habitación
//de ese tipo:

elseif ($cantidad <= $datos ['cantidad'] && $reservaslibresfec<>0) {
echo 
"En esas fechas tenemos disponibles $reservaslibresfec habitaciones de ese tipo"
ea. pues algo falla porque no va correctamente. alguna ayuda o idea¿? gracias a todos/as...

alguna idea? necesito ayuda.....:cor azon:

estoy desesperada....
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen

Última edición por GatorV; 03/03/2009 a las 11:05