Ir para conteúdo

Arquivado

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

terra

Mostrar registros entre datas inicio e fim

Recommended Posts

Olá,

 

preciso mostrar eventos entre as data inicio e fim, a minha sql mostra somente a data de inicio e a data final.

 

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

... WHERE campo_da_data BETWEEN 'xxxx-xx-xx' AND 'yyyy-yy-yy'


Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

obrigado pela resposta. Veja a minha sql, coloquei BETWEEN e deu erro

 

 

$ano=$_GET[CalYear];
$dia = $_GET[CalDay];
$mes = $_GET[CalMonth];
$data=$ano."-".$mes."-".$dia;
//echo $data;
$query = "SELECT * FROM event WHERE approved=1 and (date_from2='$data' or date_to2='$data' )";

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para usar desta maneira lógica correta é:

 

$query = "SELECT * FROM event WHERE approved=1 and  date_from2>='$data' AND date_to2<='$data'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

bom, dessa forma não mostra

 

 

 

$query = "SELECT * FROM event WHERE approved=1 and  date_from2>='$data' AND date_to2<='$data'";

eu tenho evento de 4/9 a 8/9, seu colocar a data 5/9 não mostra esse evento.

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

terra,

 

Qual a finalidade dos campos date_from2 e date_to2? a logica da query que vc esta usando esta incorreta ela serve apenas para percorrer um campo. exemplo:


$query = "SELECT * FROM event WHERE approved=1 and  date_from2>='$data' AND date_from2 <='$data'";

 

 

Olá.

 

bom, dessa forma não mostra

 

 

eu tenho evento de 4/9 a 8/9, seu colocar a data 5/9 não mostra esse evento.

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

date_from2 inicio do evento e date_to2 fim do evento, quero mostrar o evento nas datas entre inicio (date_from2) e fim (date_to2)

 

 

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá, parece complicado de entender mas nem é tanto assim:

 

- A data de início desejada deve ser menor que uma data final do banco de dados

- A data de fim desejada deve ser maior que qualquer data inicial do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

 

eu queto mostrar os eventos entre as duad datas. Exemplo;

 

tenho evento de 4/9 a 8/9 se o usuario acessar dia 5/9 esse evento não aparecerá.

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que você não guarda essas datas de evento em um campo só.

 

Se existisse um campo só, chamado data_do_evento, você poderia listá-los como sugeriam acima, utilizando between...

select * from eventos where data_do_evento between '2013-09-04' and '2013-09-08'

No caso, pelo que deu pra entender das informações fornecidas, você tem eventos que duram mais de um dia, que começam em date_from2 e terminam em date_to2.

 

Sabe nos informar o tipo de campo que eles são? Se forem datas é mais fácil de trabalhar. Você precisará procurar por todos os eventos que comecem (date_from2) e terminem (date_to2) no período especificado...

select * from eventos where date_from2 >= '2013-09-04' and date_from2 <= '2013-09-08' and date_to2 >= '2013-09-04' and date_to2 <= '2013-09-08'

Por favor, quanto mais informações você nos fornecer, mais fácil fica de te ajudar. Simplesmente voltar aqui e dizer que não deu certo complica pra caramba.

 

Informe qualquer mensagem de erro que apareça. Informe a estrutura da tabela que você utiliza, forneça alguns dados de exemplo sempre que possível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

 

Evandro, os dois campos date cadastrados assim nesse formato 2013-09-05

 

lembrando que pego a data de hoje com $_GET

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a data que vem por [inline]$_GET[/inline] também vem nesse formato? Então a consulta que eu passei acima deve resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, 0000-00-00

 

eu pego a data de hoje assim

 

$ano=$_GET[CalYear];
$dia = $_GET[CalDay];
$mes = $_GET[CalMonth];
$data=$ano."-".$mes."-".$dia;

 

 

então eu teria que fazer o sql(acho) assim

 

select * from event where approved=1 and $data a date_to2

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

terra use como parametro no select apenas um campo datefrom2 e mostre para o usuario o inicio e o fim.

 

exemplo

 select * from eventos where date_from2 >= '2013-09-04' and date_from2 <= '2013-09-08';

 

Monta um array exibindo os dados do evento:

 

Evento X / data inicio / data fim

Evento 1 04/08/2013 05/08/2013

Evento 2 05/08/2013 08/08/2013

 

........

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá,

 

obrigado vmolina.

 

Dessa forma não funciona, eu tenho eventos de 4 a 8 e tenho eventos de 5 a 7 por exemplo, assim vai mostrar hoje dia 4 um vento que começa amanhã dia 5.

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terra, sugestão:


 

<?php


$date = date('Y-m-d');


//Seleciona apenas os eventos realizados no dia atual
//Exemplo:
$seleciona_eventos_do_dia = mysql_query('select * from eventos where date_from2 = "$date"')or die(mysql_error());


//while ... exibe o resultado




//Caso queria deixar uma opcao pro usuario filtrar os dias dos eventos use a query abaixo.
// Exemplo: 
$data_inicio = $_POST['data_inicio'];
$data_fim = $_POST['data_fim'];


$seleciona_eventos_do_dia = mysql_query('select * from eventos where date_from2 >= "'.$data_inicio.'" and date_from2 <= "'.$data_fim.'"')or die(mysql_error());






?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vmolina,

 

então, isso eu já tenho: mostrar por data e opção para escolher a data.

Preciso mostrar os eventos entre duas datas: Exemplo:

 

evento de 4/9 a 8/9 mostra no dia 4 e 8, mas não mostra o evento nos dias 5,6 e 7. Será que isso não da pra fazer?

 

 

Valeu

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.