2 meses sofrendo, Como vou fazer esse select, !
Boa Noite Gente,
Estou com um problema no select.
Vou tentar explicar:
Estou fazendo site de uma imobiliaria, tenho que fazer uma pesquisa entre dois periodos, e buscar somente imoveis que estão livres entre esse dois periodos que não esteja alugados no caso.
Por exemplo:
Quero alugar uma casa de 10/12/2008 à 20/12/2008, quero buscar no banco de dados somente os imoveis que estão LIVRES neste periodo, tudo bem, isso eu consegui fazer, só estão aparecendo imóveis que estão livres, o problema é que quando eu ponho dois periodos alugados do mesmo imovel no banco de dados.
No banco de dados adicionei os periodos que os imoveis estão alugados.
TABELA: periodoalugado
ID | CODIGO | INICIO | FIM
1 4001 2008/12/15 2008/12/25
2 4022 2008/04/11 2008/05/11
3 4027 2008/02/11 2008/03/11
4 4001 2008/05/11 2008/06/11
5 4005 2008/06/11 2008/07/11
...
Reparem que tem dois itens com o codigo 4001.
O select esta assim:
CODE
$sqlper2="SELECT codigo
FROM periodoalugado
WHERE periodoalugado.inicio < '2008-12-10' AND periodoalugado.fim < '2008-12-20' OR periodoalugado.inicio > '2008-12-10' AND periodoalugado.fim > '2008-12-20'
ORDER BY codigo ASC
GROUP by codigo
LIMIT ".$inicio.", ".$limite."";
$qryper2=mysql_query($sqlper2)or die("error no sql pesqU:".mysql_error()."<br><br>".$sqlper2);
$nrwper2=mysql_num_rows($qryper2);
$regper2=mysql_fetch_array($qryper2);
Se eu executar esse script, ele me retorna todos os CODIGOS.(Eu não queria que me retornasse o codigo 4001, porque ele no ID 1 ja foi alugado nesse periodo)
Mas como o codigo 4001 no ID 4 esta disponivel ele acaba me retornando.
O problema não esta nas datas, mas sim quando tem dois ou mais itens do mesmo codigo no banco de dados
Enfim, eu queria fazer o select, quando pegasse um codigo que ja estivesse alugado (exemplo o 4001), não selecionasse ele nos proximos IDs(exemplo do 4001 no ID 4), assim ele não me retornaria.
Deu para entender?
Obrigado.
Discussão (9)
Carregando comentários...