Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal! Me pediram para criar um sistema de hospedagem aqui na empresa onde trabalho, estou com dúvida no seguinte ponto:
A sede X tem apartamentos de 01 ao 24
A sede Y tem apartamentos do 01 ao 16
Eu tenho uma tabela no BD onde vai conter as informações sobre a hospedagem. Tenho um campo periodo_de e outro periodo_ate. Eu queria que quando o cliente selecionasse o periodo, exemplo: 20/11/2012 À 25/11/2012 o select me retornasse os apartamentos disponíveis...
Da maneira que eu fiz, com Ajax, o cliente seleciona a sede, periodo e o apartamento que deseja e clica em ver disponibilidade, mas dessa maneira se, apenas, o apto 24 estiver disponivel e ele começar do 01 vai ser cansativo para caramba, pois vai do 01 até o 23...
O código que eu fiz é o seguinte:
// verificando se já existe apto resevado neste dia e nesta sede.
$sql = "SELECT apto, periodo_de, periodo_ate FROM hospedagem WHERE codsede ='$selsede' AND ativo='A' AND apto='$apto' AND ((periodo_de between '$data_de' AND'$data_ate') OR (periodo_ate between '$data_de' AND'$data_ate'));";
$resultado = mysql_query($sql);
$lin1 = mysql_num_rows ( $resultado );
$sql = "SELECT apto, periodo_de, periodo_ate FROM hospedagem_reserva WHERE codsede ='$selsede' AND ativo='A' AND apto='$apto' AND ((periodo_de between '$data_de' AND'$data_ate') OR (periodo_ate between '$data_de' AND'$data_ate')) AND data_emissao <= DATE_ADD('$data_hoje',INTERVAL 2 DAY);";
$resultado = mysql_query($sql);
$lin2 = mysql_num_rows ( $resultado );
$lin = $lin1 + $lin2;
// Se há apartamento reservado.
if ( $lin > 0 ) {
echo"Apartamento indisponivel";
}
Campos:
codigo int(11) Não None AUTO_INCREMENT
tipo varchar(9) latin1_swedish_ci Sim NULL
codmagistrado int(11) Sim NULL
nomeparente varchar(150) latin1_swedish_ci Sim NULL
documento varchar(35) latin1_swedish_ci Sim NULL
parentesco varchar(25) latin1_swedish_ci Sim NULL
nomevisitante varchar(150) latin1_swedish_ci Sim NULL
associacao varchar(100) latin1_swedish_ci Sim NULL
codsede varchar(15) latin1_swedish_ci Sim NULL
apto char(2) latin1_swedish_ci Sim NULL
periodo_de date Sim NULL
periodo_ate date Sim NULL
num_diarias int(11) Sim NULL
valor decimal(7,2) Sim 0.00
tipopgto varchar(15) latin1_swedish_ci Sim NULL
datapgto date Sim NULL
num_cheque varchar(20) latin1_swedish_ci Sim NULL
banco varchar(25) latin1_swedish_ci Sim NULL
dataemissao date Sim NULL
quem varchar(15) latin1_swedish_ci Sim NULL
ativo char(1) latin1_swedish_ci Sim NULL
Eu queria que quando ele retornasse que o apartamento está indisponível ele já retornasse os disponíveis...
Grato desde já!
Carregando comentários...