Ir para conteúdo
Fórum Script Brasil
  • 0

Último evento


MTavares

Pergunta

Prezados colegas,

eu tenho um cadastro que insere no banco em campos separados o dia, mês e ano... mas eu preciso pegar o último evento de um determinado mês.. por ex:

vamos supor que no mês de julho tenha 4 eventos:

Dia - Mes - Ano - Evento

14 - 07 - 2010 - reunião às 08:00h

20 - 07 - 2010 - reunião às 10:00h

...eu queria trazer sempre o primeiro evento (dia 14) e quando passasse o dia, me trouxesse o dia 20.... ou seja... sempre me trouxesse o próximo evento do mês corrente....

abraços

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá ESerra...tdo bem?

então... eu tentei fazer dessa forma:

"SELECT *, date_format(dia, '%d') as dia, date_formate(mes, '".date("m")."') as mes FROM mb_agenda WHERE dia > NOW() Order By dia ASC Limit 1"

só que não consegui...

como eu faria com datetime?

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe ESerra..

não entendi muito bem... é que na tabela não existe o campo hora.. apenas os campos dia, mes e ano... eu tentei usar o campo dia e não deu certo....ele em vez de me retornar o mês atual (julho), ele retorna os dados do primeiro mês (maio) que consta no banco.... só corrigindo o código que te passei:

<?php

....

$sql = mysql_query("SELECT *, date_format(dia, '%d') as dia, date_format(mes, '".date("m")."') as mes FROM mb_agenda WHERE dia > NOW() Order By dia ASC Limit 1");

...

?>

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

O que está acontecendo é bem simples, o seu campo dia deve ser do tipo int ou varchar, logo, o MySQL não tem idéia do que está lá... o NOW() deve ser usado com campo de data (date, time, datetime, timestamp), o que eu disse é para você adicionar um campo datetime e usar esse campo como referência, mesmo porque, vamos supor que você use o dia para ordernar:

Dia - Mes - Ano - Evento

14 - 07 - 2010 - reunião às 08:00h

20 - 07 - 2010 - reunião às 10:00h

$d = date('d');

$sql = mysql_query("SELECT *, date_format(dia, '%d') as dia, date_format(mes, '".date("m")."') as mes FROM mb_agenda WHERE dia > '$d' Order By dia ASC Limit 1");

O resultado vai se o que você espera, mas...

03 - 06 - 2010 - reunião às 08:00h

14 - 07 - 2010 - reunião às 08:00h

20 - 07 - 2010 - reunião às 10:00h

$d = date('d');

$sql = mysql_query("SELECT *, date_format(dia, '%d') as dia, date_format(mes, '".date("m")."') as mes FROM mb_agenda WHERE dia > '$d' Order By dia ASC Limit 1");

O resultado não vai ser o correto, pois você está levando em conta o dia, não o mês/ano.

Link para o comentário
Compartilhar em outros sites

  • 0

é verdade ESerra... não havia reparado isso... eu corrigi o código, veja:

$sql = mysql_query("SELECT *, date_format(dia, '%d') as dia_novo, date_format(mes, '".date("m")."') as mes_novo FROM mb_agenda WHERE dia > '".date("d")."' and mes = '".date("m")."' and ano = ".date("Y")." Order By dia ASC Limit 1");

e funcionou perfeitamente...

obrigadão pela força...

abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...