Jump to content


Photo

Ordenar Com Prioridade


  • Faça o login para participar
11 replies to this topic

#1 V*7

V*7

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:São Paulo
  • Interesses:Design =']... rock ='] .... ='] humildade......

Posted 11/03/2006, 13:55

Procurei na busca e não achei :assobio: ...

Vamos lá, todo mundo já deve ter visto aquelas tabelas de campeonato que são organizadas por pontos, mas se estiverem empatados ordena pelo nº de vitórias, e se continuar, por saldo de gols...

Queria saber se tem como fazer isso com PHP+MySql, eu pensei pensei pensei e não encontrei um jeito =[ pelo menos até o limite dos meus conhecimentos ^^, tem alguma função além de ORDER BY, ou que adicione algo a ela pra criar uma prioridade de ordenação?

Valeu ^^... :boxing: :D
.nome :: vinicius.
.idade :: 17.


.php. :: ||||||||||
.fireworks. :: ||||||||||
.dreamweaver. :: ||||||||||
.flash. :: ||||||||||

#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 11/03/2006, 15:00

ORDER BY com condicional IF

Tipo, SE (IF) vitorias (campo_no_bd) Time X for maior que vitórias Time Y ordena por (ORDER BY) vitórias ascendentemente (ORDER BY vitórias ASC)

Daí vc cria multiplos condicionais para cada situação colocando-as dentro de sucessivos ELSEIF's e no final um ELSE caso tudo dê errado.

Simplóriamente é isso. Se algu´m faz de um jeito mais avançado e que não use tantas linhas ou que seja de um jeito mais rápido, sei lá.

Abraços

#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 11/03/2006, 15:34

V*7, parando com design é rapaz?

organizadas por pontos, mas se estiverem empatados ordena pelo nº de vitórias, e se continuar, por saldo de gols...


Solução:
ORDER BY pontos DESC, vitorias DESC, saldo DESC

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 V*7

V*7

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado
  • Localidade:São Paulo
  • Interesses:Design =']... rock ='] .... ='] humildade......

Posted 11/03/2006, 15:48

Na verdade não parei não ^^, mas é sempre bom ser versátil em computação =D...

Valeu, eu não testei ainda não, mas pelas respostas firmes de vocês vai funcionar ^^ brigadão...
.nome :: vinicius.
.idade :: 17.


.php. :: ||||||||||
.fireworks. :: ||||||||||
.dreamweaver. :: ||||||||||
.flash. :: ||||||||||

#5 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 11/03/2006, 16:12

Você coloca para ordenar com todos os campos de sua tabela.

ORDER BY pontos DESC, vitorias DESC, saldo DESC

Se tiver com pontos empatados, ele vai ordenar por vitorias, se tiver com a mesma vitoria irá ordenar pelo saldo, e asism por diante. Pelo menos eu acho

Até mais

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#6 emelicio

emelicio

    Normal

  • Usuários
  • 112 posts
  • Sexo:Não informado

Posted 01/08/2006, 19:27

Boa Noite Galera!!!

Eu preciso do seguinte:
Tenho uma tabela chamada "pontos", onde tenho

*idponto
*nome
*pontos
*torneio

Existem varios torneios, e cada torneio a pessora faz uma pontuação:

Exemplo:

Torneio dia 25/06
idponto Nome Pontos torneio
1 Andre 25 15
2 João 20 15
3 Felipe 15 15

Torneio dia 26/06
idponto Nome Pontos torneio
4 João 36 16
5 Andre 26 16
6 Felipe 10 16

Eu sei listar o classificação de todos os torneios dessa forma:

$sql_pontos = "SELECT * FROM pontos ORDER BY pontos DESC" ;
$sql_pontos = mysql_query($sql_pontos) or die("Erro no SQL: ".mysql_error());

Resulta assim:

João 36
Andre 26
Andre 25
João 20
Felipe 15
Felipe 10

Mais eu gostaria que não exibisse o mesmo nome, e somasse todos os resultados daquele nome:
Exemplo:

João 56
Andre 51
Felipe 25


Blz Galera é isso que preciso... se alguem poder me ajudar eu agradeço....
Emelício Puel
TrendComp Informática
São João Batista - SC
Cel: (48) 9119-2558 - MSN: emelicio@trendcomp.com.br

#7 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 01/08/2006, 19:48

o ideal serica vc abrir um tópico, e na seção certa... mas tha ai

SELECT nome, sum(pontos) ptos FROM pontos GROUP BY nome ORDER BY ptos DESC

Edição feita por: MxDxPx, 01/08/2006, 19:49.

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog

#8 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 01/08/2006, 20:04

_Dudu_1533 não foi exatamente isso que o Eclesiastes colocou ?

T+
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 02/08/2006, 01:21

Para o caso dele, segundo o que eu entendi, foi exatamente como fez o MxDxPx.

Precisou agrupar os dados por usuário, para assim obter o somatório de pontos de cada um, e ordenar segundo tal valor.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#10 emelicio

emelicio

    Normal

  • Usuários
  • 112 posts
  • Sexo:Não informado

Posted 02/08/2006, 12:52

Ok Galera é isso que eu estou precisando mesmo... ainda não testei mais com certeza irá funcionar...!!!
Outra coisinha!

Esses torneios que eu falo, são torneios de cantos de passaros, eu preciso que quem tiver mais cantos, 1º lugar, ganhe 20 pontos, em 2º Lugar 19 pontos, 3º Lugar 18 pontos.
Ou seja, eu cadastro os cantos de cada passaro no torneio, e:

Classificação---Passaro--------------Cantos-----------Pontos
------1----------Tucano-----------------123----------------20
------2----------Principe----------------115----------------19
------3----------Zidani------------------111----------------18


Ou seja, eu cadastra-se o nome do passaro, o numero de cantos, e depois automáticamente, gerassem os pontos.. tipow depois que todos os resultados tivessem sido cadastrados, algum camando que buscasse a relação de cantos de cada passaro, e inserisse os pontos, de acordo com a classificação!!!!

Se caso não der, o geito é colocar os pontos manualmente!!!!

:D (y) Valeu pela atenção

Edição feita por: emelicio, 02/08/2006, 12:55.

Emelício Puel
TrendComp Informática
São João Batista - SC
Cel: (48) 9119-2558 - MSN: emelicio@trendcomp.com.br

#11 emelicio

emelicio

    Normal

  • Usuários
  • 112 posts
  • Sexo:Não informado

Posted 13/12/2006, 21:09

Daew Galera!!!!!

Era isso mesmo deu certo... o sistema de campeonatos, torneios, passaros e pontos esta perfeito.... ficou um verdadeiro software, alem de publicar todos os campeonato para o mundo inteiro, fácilitou muito a vida da secretária, que antes tinha que calcular tudo na calculadora, possibilitando erros, agora terminou o torneio e as classificações estão na internet e no mural, através de um formulário impresso através da administração!!!!

Da uma visitadinha.... o site ainda não esta todo pronto, falta muito.... mais vai ficar massa....

Valeu pela ajuda de todos (y)
Emelício Puel
TrendComp Informática
São João Batista - SC
Cel: (48) 9119-2558 - MSN: emelicio@trendcomp.com.br

#12 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

Posted 14/12/2006, 08:08

e mais um ressurge das cinzas!!!

manda o link então! caso contrário fica um pouco complicado! ehhehehe

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq