Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luciano Rodrigues

Sistema de reserva

Recommended Posts

Pessoal é meio complicado, mas vou tentar!

 

To fazendo projeto final da faculdade. É uma pousada com sistema de reserva on-line, funciona da seguinte maneira:

 

O cliente entra.. tem um calendario, escolhe o dia. Essa parte que travei.

 

São 10 quartos. Tem que fazer uma consulta na tabela de reservas e esse dia que foi escolhido, o quarto se estiver ocupado não será exibido, só será exibido os quartos que não se encontaram naquele dia.

 

o resto eu já consegui fazer, cadastro de cliente, confirmação e outras coisas.

 

So que nessa parte dos quartos.. eu até consegui fazer os quartos que estão ocupado apareçer, mas como faria os livres apareçer.. NÃO SEI SE EXPLIQUEI BEM..

 

PARA EXIBIR OS QUARTOS OCUPADOS.. TO FAZENDO ASSIM.. TA EXBINDO, MAS ACHO QUE NÃO ESTÁ CORRETO

 

<?php

 

$data = $_POST['dateField'];

$data_calendario = implode("-", array_reverse(explode("/", $data)));

 

$db = mysql_connect("localhost", "root","");

 

mysql_select_db("pousada",$db);

 

$resultado = mysql_query("SELECT * FROM TBreserva",$db);

$resultado_quarto = mysql_query("SELECT quarto FROM TBreserva",$db);

 

while (@$coluna = mysql_fetch_row($resultado)) {

 

$res = mysql_fetch_array($resultado_quarto);

$quarto = $res['quarto'];

 

if ($coluna[2] == $data_calendario || $coluna[3] == $data_calendario){

echo "Quartos ocupados: ",$quarto,"<br>";

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, adiciona um campo no bd chamado STATUS, e cria uma regra pra ele:

 

ex:

 

Se STATUS = 1

Então quarto está livre

 

Se STATUS = 2

Então quarto está ocupado

 

 

Ao clicar no calendário, faz um select de acordo com o status:

 

ex: Select * from quartos where status=1

 

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa ideia essa do status.. vou tentar.. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Mas tipo na tabela reserva ta assim.. id_reserva, quarto, data_entrada, data_saida, etc...

 

se eu colocar o status, acho que dá no mesmo porque o quarto naquele dia vai está ocupado da mesma maneira.

 

Ele só vai está ocupado se tiver um registro dele na tabela..

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, mas deixa ver se entendi:

 

SÃO DUAS TABELAS [RESERVAS] [QUARTOS]

E TEM QUE HAVER UMA LIGAÇÃO ENTRE AS TABELAS, DE 1>N

 

[RESERVAS]1-------N[QUARTOS]

 

AFINAL O USUÁRIO PODE RESERVAR "N" QUARTOS.

ASSIM A TABELA [QUARTOS] VAI TER O ID DA RESERVA.

FEITA A RESERVA E ESCOLHIDO O QUARTO DESEJADO A TABELA DEVE FICAR +/- ASSIM:

 

[RESERVA]

id_reserva--------data_entrada-------------data_saida

------1--------------22/01/1988--------------25/01/1988

 

[QUARTO]

id_quarto------------id_reserva-------------quarto

----7----------------------1---------------------- 7

 

 

SE QUARTO TIVER ID DA RESERVA, ENTÃO É SINAL QUE ELE TA OCUPADO!

 

...

 

Tem que ser pensado o.o

E eu sou péssimo em modelagem :(

 

rsrs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz um sistema desse apanhei, tu vai ter que procurar no BANCO DE DADOS os quartos que estao na reserva soh que nao entre aquela data e unir com os que nao tem nenhuma reserva.

tipo assim

 

SELECT quarto.id FROM quarto,reserva WHERE quarto.id = reserva.qid AND coldata NOT BETWEEN reserva.di AND reserva.df AND reserva.qid NOT IN(SELECT reserva.qid FROM reserva WHERE coldata BETWEEN reserva.di AND reserva.df) UNION SELECT quarto.id

FROM quarto

WHERE quarto.id NOT IN (SELECT reserva.qid FROM reserva)

 

coldata eh a variavel em tempo de execuçao,ou seja,teu post,

reserva.di eh a data de entrada no bd e reserva.df eh data de saida no bd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse post de cima eh pra você achar os que estao livres,pra mostrar os ocupado basta você fazer o seguinte

 

SELECT quarto.id FROM quarto,reserva WHERE quarto.id = reserva.id AND coldata BETWEEN dataentrada AND datafim "mais aquela unioon do post passadO"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.