Ir para conteúdo

POWERED BY:

Arquivado

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

SérgioNP

Consulta avançada

Recommended Posts

Boa tarde galera,

 

Dei uma procurada aqui pelo fórum, mas não encontrei o que procurava.

 

Estou com o seguinte problema:

Preciso fazer uma validação consultando o banco de dados e retornar uma resposta se o formulário poderá ser inserido ou não, trata-se de uma agenda de eventos, segue abaixo o código:

 

<?php
if ((isset($_POST["reservar"])) && ($_POST["reservar"] == "reservar")) {

$hora_inicial = $_POST['horario_inicial'];
$hora_final = $_POST['horario_final'];

$sql = mysql_query("SELECT * FROM area_comum_reserva WHERE idAreaCat = '".$_POST['local']."' AND dataArea = '".$_POST['calendario']."' AND '".$_POST['horario_inicial']."' = horarioIniArea AND '".$_POST['horario_final']."' = horarioFinArea AND codCondominio = '".$_POST['condominio']."' AND statusArea = 'Pendente' OR statusArea = 'Aprovada' AND '$hora_inicial' BETWEEN horarioIniArea AND horarioFinArea OR '$hora_final' BETWEEN horarioIniArea AND horarioFinArea");

if(mysql_num_rows($sql) >= 1){


echo "<script>alert('Já existe um reserva cadastrada igual a sua solicitação!')</script>";
echo "<script language='javaScript'>window.location.href='inserir_area_comum.php#area_comum'</script>";

}else{

$inserir = "INSERT INTO area_comum_reserva (idAreaCat,codCondominio,codMorador,eventoArea,dataArea,dataCadastro,horarioIniArea,horarioFinArea,descArea,statusArea)VALUES('".$_POST['local']."','".$_POST['condominio']."','".$_POST['morador']."','".$_POST['titulo']."','".$_POST['calendario']."','".$_POST['cadastro']."','".$_POST['horario_inicial']."','".$_POST['horario_final']."','".$_POST['descricao']."','".$_POST['status']."')";

$qr = @mysql_query($inserir);

}
}

echo "<script>alert('Reserva cadastrada com sucesso. Aguarde aprovação do (a) síndico (a)!')</script>";
echo "<script language='javaScript'>window.location.href='inserir_area_comum.php#area_comum'</script>";

?>

A validação de todos os campos acontece perfeitamente, o problema é no BETWEEN, não é para a validação deixar cadastrar quando a hora inserida estiver entre o HORÁRIO INICIAL e HORÁRIO FINAL. Queria saber se existe alguma particularidade para o uso de VÁRIOS BETWEENS na mesma consulta.

 

Os campos para validação são:

 

Local do evento, data, hora inicial, hora final e se a hora escolhida está entre o horário inicial e final.

 

Do jeito que está o código agora, ele deixa eu gravar no banco quando coloco um horário entre os horários já cadastrados no banco.

 

Conto com a ajuda de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cuidado quando usar AND e OR na mesma sentença, separe por parenteses para maior clareza e certeza.

 

O campo tem gravadoa data e hora ?

 

Teste se uma data/hora em questão está no intervalo

 

and '29/10/2012 11:58' between datainicial and datafinal

 

fazendo a devida conversão para data de '29/10/2012 11:58'

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.