SérgioNP 0 Denunciar post Postado Outubro 28, 2012 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
Motta 645 Denunciar post Postado Outubro 29, 2012 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