wrn 0 Denunciar post Postado Março 3, 2006 Estou tentando ordenar os dados vindos de uma coluna no MySQL (sou novato no assunto) mas não consigo colocar na ordem normal, tipo: 1, 2, 3, 4, 5... ele sempre coloca 1 depois 10, etc.. tudo que começa com 1, depois tudo que começa com 2, etc...O Código tá assim: include "config.php";//carrega os dados$sql = "SELECT * FROM satelite ORDER BY grau";$resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta ao banco de dados");while ($linha=mysql_fetch_array($resultado)) {echo "<tr><td bgcolor='#F3F3F3' align='center'><font size=2> <b><a href='charts.php?ir=$linha[ini]'> $linha[grau] $linha[posicao]</b></a></font></td>";}A Coluna Grau possui números de até 5 digitos sendo assim: 27.1 Intelsat1.0 Intelsat115.5 Satmex35.5 Panamsat22.0 NSS42.0 StarOne2.0 Loral101.0 Telesatetc...O resultado que aparece na ordenação é este:1.0 Intelsat101.0 Telesat115.5 Satmex2.0 Loral22.0 NSS27.1 Intelsat35.5 Panamsat42.0 StarOneGostaria que fossem ordenados assim: 1.0 Intelsat2.0 Loral22.0 NSS27.1 Intelsat35.5 Panamsat42.0 StarOne101.0 Telesat115.5 SatmexObrigado desde já pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
leandro07 0 Denunciar post Postado Março 3, 2006 Tenta assimORDER BY grau ASCASC - crescenteDESC - decrescente Compartilhar este post Link para o post Compartilhar em outros sites
wrn 0 Denunciar post Postado Março 3, 2006 Eu já havia testado tanto com ASC quanto com DESC Com ASC fica assim: 1.0 Intelsat 101.0 Telesat 115.5 Satmex 2.0 Loral 22.0 NSS 27.1 Intelsat 35.5 Panamsat 42.0 StarOne Com DESC fica assim: 42.0 StarOne 35.5 Panamsat 27.1 Intelsat 22.0 NSS 2.0 Loral 115.5 Satmex 101.0 Telesat 1.0 Intelsat Em ambos NÃO consegui colocar na ordem normal que seria: 1.0 Intelsat 2.0 Loral 22.0 NSS 27.1 Intelsat 35.5 Panamsat 42.0 StarOne 101.0 Telesat 115.5 Satmex Obrigado por tentar ajudar! Compartilhar este post Link para o post Compartilhar em outros sites
cassitos 2 Denunciar post Postado Março 3, 2006 Rapaz... você pode tentar utilizando o Cast. Ex: SELECT * FROM satelite ORDER BY CAST(grau AS SIGNED) ASCMais info: Cast FunctionsIsto porque está ordenando uma coluna não numérica (esta deve ser char ou varchar ou outro tipo), então a ordenação realmente fica estranha neste caso. Compartilhar este post Link para o post Compartilhar em outros sites
wrn 0 Denunciar post Postado Março 4, 2006 Obrigado, eu acabei de conseguir mudando pra DECIMAL na tabela do DB... mas assim ele tora os numeros com vírgula...Acabei de testar este que você passou, cassitos... e funcionou muito melhor, funcionou certinho! Obrigado!Mas acontece outra coisa agora que passei deste passo... pra cada um daqueles ítens o sistema teria que buscar em outra tabela a postagem mais recente, mas não estou conseguindo fazer isso... alguem tem alguma dica?Obrigado desde Já! Compartilhar este post Link para o post Compartilhar em outros sites
andrearruda 0 Denunciar post Postado Abril 28, 2006 Estou tentando usa esta funcao CAST... porem nao estou conseguindo um resultado satisfatorio!!!SELECT * FROM faturamento_lojas ORDER BY CAST(faturamento AS DECIMAL) Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Abril 29, 2006 Qual tipo é o campo 'faturamento'? Dê exemplo de informações contidas nele, e como você queria o resultado. Compartilhar este post Link para o post Compartilhar em outros sites
willwalker 2 Denunciar post Postado Julho 31, 2007 Oi, eu estava vendo tópico e estou precisando de uma ajudinha hehe. Eu fiz uma listagem com paginação, e to precisando que ele faça a listagem do ultimo cadastro para o primeiro. Eu fiz todos os exemplos e uns tirava a paginação, e outros dava erro. Mas nenhum dos exeplos retornou do ultimo para o primeiro cadastro, alguem pode me ajudar =]. Compartilhar este post Link para o post Compartilhar em outros sites