Fran 0 Denunciar post Postado Julho 15, 2005 Como faço para consultar do banco (mysql), de modo que o resultado venha ordenado pelo mês ??? (jan,fev,mar, ...) Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Julho 16, 2005 SELECT * FROM tabela ORDER BY data DESC Obs.: Usando campos DATE ou DATETIME.Para pegar registros apenas de um mês especifico: SELECT * FROM tabela WHERE MONTH(campo) = '12' No exemplo acima foi usado o mês 12.Para o mês atual use: MONTH(campo) = MONTH(NOW()) Assim ele compara o mês dos campos com o mês atual. ;) Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 18, 2005 Obrigada pelas respostas, no entanto não resolve o problema. Vou explicar porque: no php eu faço uma busca por data assim:$vSql = "SELECT * FROM tb_cota WHERE data= '$data' "; (mostrar tudo que tem na tabela tb_conta na data referente a data de 18-07-2005)Essa tabela tb_cota tem um campo chamado MES. Gostaria que que a busca sql viesse ordenado por esse campo MES. Se colocar ORDER BY DATA não funciona porque estou buscando apenas uma data em especifico e nao um intervalo de datas, se colocar ORDER BY NAME, obviamente vai buscar por ordem alfabetica. Então ... Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 18, 2005 Olá amigo! Obrigada pela resposta, mas não é possivel, pois se ordenar pelo mes vai acontecer duas coisas: vai ficar ordenado pelo id ou por ordem alfabetica. Em vez de jan, fev, mar, abril vai ficar: abril, fev, jan, mar ... Enfim, fiz um "quebra galho" assim: no form do html coloquei numeros na frente dos meses ficou assim: 1 jan, 2 fev, 3 mar , etc. daí sim, vai funcionar ORDER BY MES ... depois, na hora de mostar a consulta é só esconder os numeros da frente ... Até aparecer uma solução, vou usar assim mesmo! Obrigada a todos !!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 18, 2005 Olha só, 1- a procura é PELA DATA, não pode ser pelo mês2 - a tabela sql é assim: id....mes.....compromisso....acumulado.....perct.....qtdade...valor..........data 72---Junho-------115----------------36---------31--------16------90------2005-07-18 73---Abril---------105---------------99---------94--------10------20------2005-07-18 74---Março-------107--------------100---------93--------07-----100------2005-07-18 Então, primeiramente eu procuro pela data, informo no combo "2005-07-18"Faço a consulta: $vSql = "SELECT * FROM tb_cota WHERE data= '$data' "; E quero que a consulta me retorne assim: Março ...Abril ...Junho ...Se eu colocar ORDER BY MES, retorna em ordem AFABETICA Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 19, 2005 oie, alguem por aí ? Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Julho 20, 2005 Se você quisesse ordenar pelo mês da coluna "data", você faria assim: ORDER BY MONTH(data), mas não é esse o caso, né?... O problema é que você tá salvando o mês num campo de caracteres (provavelmente o varchar). O ideal no seu caso é salvar num campo do tipo integer(2)... aí a ordenação vai vir correta. Compartilhar este post Link para o post Compartilhar em outros sites
micox 2 Denunciar post Postado Julho 20, 2005 Se você quisesse ordenar pelo mês da coluna "data", você faria assim: ORDER BY MONTH(data), mas não é esse o caso, né?... O problema é que você tá salvando o mês num campo de caracteres (provavelmente o varchar). O ideal no seu caso é salvar num campo do tipo integer(2)... aí a ordenação vai vir correta. <{POST_SNAPBACK}> Se o seu campo de data for realmente uma string e estiver no formado dd/mm/yyyy você pode fazer a ordenação assim: "SELECT * FROM tb_contas ORDER BY mid(campo_data,4,2) DESC"Este exemplo funciona em Access e Sql Server que aceitam a função MID, que faz uma substring. Em outros bancos, procurar uma função equivalente. Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Julho 20, 2005 Se o seu campo de data for realmente uma string e estiver no formado dd/mm/yyyy você pode fazer a ordenação assim: "SELECT * FROM tb_contas ORDER BY mid(campo_data,4,2) DESC" Este exemplo funciona em Access e Sql Server que aceitam a função MID, que faz uma substring. Em outros bancos, procurar uma função equivalente. <{POST_SNAPBACK}> Valeu pela explicação... não conhecia a função mid(). ;) Mas no caso dele, não vai funcionar, tb... suba uns posts e veja como está a tabela dele. O campo "mes" salva o nome do mês... literalmente. Aí na hora que ele ordena, "abril" vem na frente de todos. Por isso que eu falei pra ele salvar como integer... Não é difícil... é só você criar uma nova coluna na tabela... aí você monta uma cláusula SQL pra ir preenchendo essa nova coluna a partir do conteúdo da coluna "mes"... depois é só apagar a coluna com o nome dos meses... se precisar de ajuda pra fazer isso, posta aí! []'s! Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 20, 2005 Olá Illidan !!! Você está certo, neste caso não vai funcionar porque O campo "mes" salva o nome do mês... literalmente. Aí na hora que ele ordena, "abril" vem na frente de todos. E se eu salvar como integer(2), no hora de mostar isso no php vai vir 01 02 em vez de janeiro, fevereiro ... Então, se você puder me ajudar a fazer essa claúsula, agradeço Francine http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Não é difícil... é só você criar uma nova coluna na tabela... aí você monta uma cláusula SQL pra ir preenchendo essa nova coluna a partir do conteúdo da coluna "mes"... depois é só apagar a coluna com o nome dos meses... se precisar de ajuda pra fazer isso, posta aí! Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Julho 20, 2005 Olá, Fran... a sua dúvida é sobre como passar os valores pra um novo campo, ou como exibir o nome do mês pelo PHP a partir do número (por exemplo, se for 1 exibe janeiro, 2 exibe fevereiro, etc.) ??? Pra passar os dados para a nova coluna, é só você criar clásulas do tipo: UPDATE tabela SET mes_integer = 1 WHERE mes = 'janeiro' ... E assim por diante pra cada mês... é a maneira mais fácil que eu conheço de fazer isso. Aí, pra exibir o nome do mês, é só criar uma função em PHP... se for 1, ela retorna "janeiro", 2 "fevereiro", e por aí vai... ;) Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Fran 0 Denunciar post Postado Julho 21, 2005 Obrigada a todos que responderam, era isso mesmo !! Falow http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
san software 0 Denunciar post Postado Janeiro 8, 2010 http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif valeu era minha dúvida também é só salvar como [01,02,03,04 ...]. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites