Ir para conteúdo

POWERED BY:

Arquivado

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

11closed

[Resolvido] buscando por ordem, data varchar

Recommended Posts

olá

 

estou com um script que deve imprimir os próximos eventos, através das datas de inicios dos Eventos, mas o campo das datas é VARCHAR e são gravados nesse formato "00/00/0000".

gostaria de uma forma de fazer um loop imprimindo as datas na ordem correta, sem que eu troque o campo de VARCHAR para DATE ou DATETIME.

aguem sabe uma forma para criar esse script ?

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

É impossível você ordenar uma data neste formato (dd/mm/aaaa) e ainda usando um campo do tipo VARCHAR.

 

O tipo VARCHAR é considerado como uma string, então o máximo que você consegue ordenar usando este tipo de campo é por ordem alfabética, o que não serve no caso de datas.

 

O correto realmente seria usar um campo do tipo DATE, que serve justamente para isso, armazenar datas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como, mas você pode me explicar como quer ordenar, se é ordenação de hoje para amanhã, depois, etc... Ex:

 

Hoje: 30/11/2011;

Amanhã: 30/12/2011;

Depois de amanhã: 30/13/2011;

Etc...

 

E as datas do próximo mes vai ficar na frente das datas deste mês

 

É isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá

 

Logan Martinelli

Ex: se eu crio um While para buscar as datas do BD, vamos supor que ache 3 datas.

se eu apenas colocar ORDER BY vai buscar assim

 

1º - 01/01/2013

2º - 02/02/2012

3º - 30/11/2011

 

certo.

 

gostaria de um script que ordenasse as datas nessa ordem:

 

 

1º - 30/11/2011

2º - 02/02/2012

3º - 01/01/2013

 

cassiano óliver, poderia me mostra um exemplo do script que eu deveria fazer ?

 

t+

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você não cria while para buscar datas do BD, while é para mostrar todos os resultados encontrados, se não apenas exibirá o primeiro.

 

Busque assim;

 

Suposta Tabela: datas

Suposto campo de data: dat

 

$q=mysql_query("SELECT * FROM `datas` ORDER BY `dat` ASC");
while($fetch=mysql_fetch_array($q)):
$data=$fetch['dat'];
$datas .='<div id="data"> '. $data .' </div>';
endwhile;

echo $datas;

 

 

Deve resolver, mas existe outros meios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha Logan

 

usei o codigo q você me indicou, ele mostrou nessa ordem

 

01/01/2012

01/11/2011

01/11/2011

02/01/2012

 

o correto seria mostrar nessa ordem

 

01/11/2011

01/11/2011

01/01/2012

02/01/2012

 

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, obrigado a todos pelas as dicas

 

Eu achei q tinha uma maneira para fazer isso sem ter que trocar todas as datas do meu BD, mas vai ser o jeito msm.

 

vlw t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim eu sei logan: mas aki no meu site eu estava tratando todas as datas como varchar vou manter um padrão e trocar todas para DATE, certo

 

obrigado..

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.