InSoNiA 0 Denunciar post Postado Fevereiro 6, 2008 Olá pessoa como vão? To com um probleminha que pra mim viro um PROBLEMAUMMM. Seguinte, tenho uam tabela com a seguinte estrutura (campos): id_agenda evento data local o X da questão é que estou querendo ordenar os eventos por data, sendo os eventos mais próximos listados nas primeiras posições. Fiz assim: CODE $sql = "SELECT * FROM agenda"; $res = mysql_query($sql); $row = mysql_fetch_array($res); $data = explode("/", $row['data']); $total = mysql_num_rows($res); if ($total == 0) { echo "NADA foi encontrado!"; } else { $sql = "SELECT * FROM agenda ORDER BY $data[2], $data[1], $data[0] LIMIT $inicio, $max"; $res = mysql_query($sql); while ($row = mysql_fetch_array($res)) { echo $row['data']; } // fecha WHILE } // fecha o ELSE Não ta funcionando, a ($sql) seria equivalente a: $sql = "SELECT * FROM agenda ORDER BY ano, mes, data LIMIT $inicio, $max"; Usei exatamente assim em um outro sistema que fiz anterior a este, porém no meu banco existiam TRÊS campos para DATA, ai fica fácil, poderia por o ORDER direto. Nesse caso como to usando um único CAMPO para armazenar a DATA não to conseguindo fazer, será que tem como? Pois quero fazer um código melhor, com um banco mais estruturado, sem ter que ficar criando vários campos sendo que sei que posso armazenar em um único campo e quebra-lo para fazer a filtragem. Espero ter sido claro, e agradeço que puder me ajudar. InSoNiA Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Fevereiro 6, 2008 Você cometeu um pecado quebrando a data em três campos, pois assim o valor que deveria ser do tipo DATE, e consequentemente ter todas as propriedades e funcionalidades de uma data, não passa de um inteiro ou string. Resolveria ordenar pelo id_agenda? imagino que seja um campo sequencial, e se a data for a data de inclusão, dá na mesma ordenar pelos campos de data e id. Compartilhar este post Link para o post Compartilhar em outros sites
InSoNiA 0 Denunciar post Postado Fevereiro 20, 2008 Olá como faria então usando o Tipo do campo no MySQL como DATE? Alterei o meu banco, agora o tipo esta como DATE como faria? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
NSF 0 Denunciar post Postado Fevereiro 20, 2008 Olá como faria então usando o Tipo do campo no MySQL como DATE? Alterei o meu banco, agora o tipo esta como DATE como faria? Obrigado! o tipo date do mysql utiliza datas no formato 2008-02-19 logo você deverá passar no insert o valor do campo neste formato. Ou você pode ainda utilizar a função STR_TO_DATE(str,format) do mysql na seguinte sitaxe STR_TO_DATE('19/02/2008', '%d/%m/%Y') isto funcionará. FlW! Compartilhar este post Link para o post Compartilhar em outros sites
InSoNiA 0 Denunciar post Postado Fevereiro 25, 2008 Olá NFS, obrigado pela ajuda, porém já estou utilizando o tipo DATE e cadatrando os dados no formato citado. A questão é como consigo atingir o resultado ORDENADO da maneira que citei no inicio do tópico ou seja pela seguinte ordem: ANO MES DIA pois dessa forma vou conseguir imprimir na tela os eventos mais próximos na tela do usuário Se alguém puder ajudar agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
K M 0 Denunciar post Postado Fevereiro 25, 2008 ORDER BY data DESC Compartilhar este post Link para o post Compartilhar em outros sites
InSoNiA 0 Denunciar post Postado Março 1, 2008 Amigo obrigado, nossa que simples, nossa dava maior volta para fazer isso com campos e códigos rídiculo, nunca mais faço as coisas na pressa. Obrigado é bem simples mesmo. T+ Compartilhar este post Link para o post Compartilhar em outros sites