Ola a todos.
To tendo um problema com a funçao date()
No meu sistema de noticia, na pagina principal mostra as ultimas 3 noticias publicadas, mas nao to conseguindo ordenar elas, se eu coloco order by time(nome do campo q recebe o date) desc, ele mostras as noticias do mes passado depois a deste mes, e se eu coloco em ASC ele apresenta as deste mês mas com a ultima em primeiro.
como eu conseguiria resolver isso?
- Home
- >
- Fórum
- >
- Profissional
- >
- Programação, Sc...
- >
- Order by time [php / mysq...
Dadas estas 6 datas de notícias: 5/04/06, 1/05/06, 20/04/06, 08/04/06, 2/05/06, 3/05/06.
Em qual ordem você quer que elas sejam listadas?
A mais nova primeiro.
03/05/06
02/05/06
01/05/06
20/04/06
08/04/06
05/04/06
Como tu está fazendo a cláusula select?
Eu se fosse você usaria um outro campo, ID, com uma identificação do número da notícia...
já serviria pra você visualizar ela (noticia.php?id=xx) e para ordernar
rwar esta assim:
$consulta = mysql_query("SELECT * FROM noticias ORDER BY time DESC LIMIT 0 , 2"
jqueiroz conseguiu algo?
hehe, um conterraneo por aqui :mrgreen:
por um acaso vc é o Boizaum? pq eu conheço esse avatar do comp :wink:
agora me diz uma coisa, com relação ao que o gto disse, o qq tem a ver vc tah fazendo isso na pagina inicial? é só fazer normalmente num é?
eu cheguei a fazer umas coisas aqui com data no php onde eu tive que reordenar elas (até foi o Felipe que me ajudou), vou ver se acho e ai te passo.
mas pensa bem nisso, acredito que o fato de ser na página inicial não interfira em nada e ainda vai facilitar caso vc queira mostrar uma unica noticia especifica
eita, papito! aqui é o boizaum sim =D
blz?!
entao cara, o caso da noticia especifica ja tem, é q na pagina principal do clilente aprece as ultimas 3 noticias resumidas.
E nao to conseguindo colocar na ordem certa.
[]´s
entaum boizaum da pra fazer isso de boa usando um campo de identificador da noticia.
coloca ele no mysql como auto_increment, ai a cada nova noticia ele se incrementa, ai com isso vc manda ordenar inversamente (da maior noticia pra menor)
eu fiz um sitezinho aqui que a página inicial faz isto www.queijosbandeira.com.br
pelo visto é o mesmo esquema, as noticias estão na página inicial e eu mostro apenas um pedaço delas, ai tem um link ver a noticia completa que mostra toda aquela noticia especifica (que também esta sendo chamada pelo numero identificador da noticia)
Pode ser feito o que o Papito disse, e funciona sem problemas, embora não possa testar aqui pois não tenho MySQL instalado, somente PostgreSQL, o que para essa consulta o resultado é praticamente igual. Acredito que possa ter algo errado com essa data.
uma coisa que eu vi aqui usando o php e mysql é que quando vc vai trabalhar com datas visiveis para nosso formato (dd/mm/aaaa) vc deve tratar estes dados, pois o mysql trabalha com o format (aaaa/mm/dd)
não estou bem certo se são estes os códigos que usei (procurei rapidamente entre os arquivos que tenho e não testei) em um outro projeto que fiz, mas seguem os códigos
Para transformar de dd/mm/aaaa para aaaa/mm/dd (util para gravar uma data no mysql)
function dateFormat ($data) {
return (substr($data,6,4).substr($data,3,2).substr($data,0,2));
}
Para transofrmar de aaaa/mm/dd para dd/mm/aaaa (util para ler do mysql e ficar visivel para nós simples mortais :mrgreen: , e também para ordenar se for o caso)
function mostraData ($data) {
return (substr($data,8,2).substr($data,5,2).substr($data,0,4));
}
se num der certo falae q tento achar o código certo
O campo da data ta salvando assim: 12/04/06, 3:41 pm
Papito, valeu pela diga, posso até fazer assim, mas queria saber se tem como ordenadar pelo campo da data mesmo. Mas se nao tiver como vo fazer do jeito q vc disse mesmo.
Você alterou algum configuração das datas, por exemplo, para que salvasse dessa forma? Nunca trabalhei com formatos "brasileiros", por isso a minha dúvida. Lembro (acho que comentei anteriormente) que já trabalhei com mysql, e tive que fazer ordenação por data, porém esta se encontra em modo "inglês" (YYYY-MM-DD HH:SS), e funcionava. Quem sabe alterando este formato é que a ordenação está se perdendo - apenas uma suposição.
Diria para você criar uma tabela qualquer com um campo data padrão, inserir alguns valores e fazer este teste novamente, afim de verificar se realmente não é esse o problema.