Londim 0 Denunciar post Postado Abril 4, 2008 Galera eu to fazendo um torneio........ e preciso de um rank de jogadores dai qria criar uma tabela pra kda usuario entao eu poderia criar as data de cada jogo so q naum tenhu nem ideia de como tratar tabelas sei mexe muito bem com fields entao primeiro como faço uma pesquisa qru q ele pegue o jogador com mais pontos............ pra isso ele vai ter q correr todas as tabelas e todos os fildes de pontos como seria essa pesquisa EH URGENTE Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 4, 2008 Londim, tem algum motivo para querer criar uma tabela pra cada usuário ? Compartilhar este post Link para o post Compartilhar em outros sites
LHAlmeida 0 Denunciar post Postado Abril 4, 2008 Galera eu to fazendo um torneio........ e preciso de um rank de jogadores dai qria criar uma tabela pra kda usuario entao eu poderia criar as data de cada jogo so q naum tenhu nem ideia de como tratar tabelas sei mexe muito bem com fields entao primeiro como faço uma pesquisa qru q ele pegue o jogador com mais pontos............ pra isso ele vai ter q correr todas as tabelas e todos os fildes de pontos como seria essa pesquisa EH URGENTE você vai precisar de apenas uma tabela para seus jogadores e um campo na tabela que armazena a pontuaçao de cada jogador, depois para gerar um ranking basta você fazer uma select com a clausula LIMIT (limitando aos 10 ultimos resultados por exemplo) em ordem decrescente (ou seja do primeiro para o décimo) select * from jogadores order by pontos desc limit 10 explicando: select * from jogadores selecione todos os campos da tabela jogadores order by pontos desc ordene pelo campo pontos em ordem decrescente limit 10 limite os resultados a 10 registros por uma questão de performance, é desejavel a criacao de um indice para o campo "pontos" abraço Compartilhar este post Link para o post Compartilhar em outros sites
Londim 0 Denunciar post Postado Abril 4, 2008 Londim, tem algum motivo para querer criar uma tabela pra cada usuário ? tipo eh o seguite qru um rank esse rank tem 5 tipos de pontos por jogo o jogador pode jogar mais de uma vez por dia e eu preciso ter registrado cada jogo dele no banco com data e hora mi da uma ideia de como fazer q eu desisto de criar as tabelas eheheheehe obrigado Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 4, 2008 ?? nao tem nada de mais. faça relacionamento por campos chave... Compartilhar este post Link para o post Compartilhar em outros sites
LHAlmeida 0 Denunciar post Postado Abril 4, 2008 Londim, tem algum motivo para querer criar uma tabela pra cada usuário ? tipo eh o seguite qru um rank esse rank tem 5 tipos de pontos por jogo o jogador pode jogar mais de uma vez por dia e eu preciso ter registrado cada jogo dele no banco com data e hora mi da uma ideia de como fazer q eu desisto de criar as tabelas eheheheehe obrigado você tem uma tabela de jogos certo? com a data e hora de criacao do jogo (esse jogo deve ter um id) crie uma tabela com jogos_jogador com o id do jogo e o id do jogado e os pontos obtidos por este jogador cada pontuação em seu devido campo, eum campo que seja uma sintese desses pontos com seus devidos pesos para servir de classificacao (q pode ser por exemplo a somatoria de todos os 5 pontos diferentes) ou definido por algum criterio seu... a tabela jogos_jogador ficara assim id_jogo, id_jogador, pontuacao1,pontuacao2, ..., pontuacaoN, fatordeclassificacao sua select vai ser assim select jogadores.nome, sum(jogos_jogador.pontuacao1)as pontos1, sum(jogos_jogador.pontuacao2) as pontos2,...,sum(jogos_jogador.pontuacaoN)as pontosN from jogos_jogador inner join jogadores on jogadores.id = jogos_jogador.id_jogador inner join jogos on jogos.id = jogos_jogadores.id_jogo where jogos.data = current_date group by jogos_jogador.id_jogador order by sum(jogos_jogador(fatordeclassificacao) desc limit 10 explicando select jogadores.nome, sum(jogos_jogador.pontuacao1)as pontos1, sum(jogos_jogador.pontuacao2) as pontos2,...,sum(jogos_jogador.pontuacaoN)as pontosN from jogos_jogador selecione os nomes dos jogadores e a soma de cada pontaucao em sua devida coluna inner join jogadores on jogadores.id = jogos_jogador.id_jogador relaciona a tabela de jogadores (necessaria para retornar os nomes dos jogadores) inner join jogos on jogos.id = jogos_jogadores.id_jogo relaciona a tabela de jogos para que possa pegar as datas dos jogos (ja q o ranking é diario) group by jogos_jogador.id_jogador agrupa resultados pelo codigo do jogador order by sum(jogos_jogador(fatordeclassificacao) desc orderna(decrescente) pela soma do campo q define a classificacao do jogador limit 10 limita a 10 resultados abraço Lucas Compartilhar este post Link para o post Compartilhar em outros sites
Londim 0 Denunciar post Postado Abril 4, 2008 Londim, tem algum motivo para querer criar uma tabela pra cada usuário ? tipo eh o seguite qru um rank esse rank tem 5 tipos de pontos por jogo o jogador pode jogar mais de uma vez por dia e eu preciso ter registrado cada jogo dele no banco com data e hora mi da uma ideia de como fazer q eu desisto de criar as tabelas eheheheehe obrigado você tem uma tabela de jogos certo? com a data e hora de criacao do jogo (esse jogo deve ter um id) crie uma tabela com jogos_jogador com o id do jogo e o id do jogado e os pontos obtidos por este jogador cada pontuação em seu devido campo, eum campo que seja uma sintese desses pontos com seus devidos pesos para servir de classificacao (q pode ser por exemplo a somatoria de todos os 5 pontos diferentes) ou definido por algum criterio seu... a tabela jogos_jogador ficara assim id_jogo, id_jogador, pontuacao1,pontuacao2, ..., pontuacaoN, fatordeclassificacao sua select vai ser assim select jogadores.nome, sum(jogos_jogador.pontuacao1)as pontos1, sum(jogos_jogador.pontuacao2) as pontos2,...,sum(jogos_jogador.pontuacaoN)as pontosN from jogos_jogador inner join jogadores on jogadores.id = jogos_jogador.id_jogador inner join jogos on jogos.id = jogos_jogadores.id_jogo where jogos.data = current_date group by jogos_jogador.id_jogador order by sum(jogos_jogador(fatordeclassificacao) desc limit 10 explicando select jogadores.nome, sum(jogos_jogador.pontuacao1)as pontos1, sum(jogos_jogador.pontuacao2) as pontos2,...,sum(jogos_jogador.pontuacaoN)as pontosN from jogos_jogador selecione os nomes dos jogadores e a soma de cada pontaucao em sua devida coluna inner join jogadores on jogadores.id = jogos_jogador.id_jogador relaciona a tabela de jogadores (necessaria para retornar os nomes dos jogadores) inner join jogos on jogos.id = jogos_jogadores.id_jogo relaciona a tabela de jogos para que possa pegar as datas dos jogos (ja q o ranking é diario) group by jogos_jogador.id_jogador agrupa resultados pelo codigo do jogador order by sum(jogos_jogador(fatordeclassificacao) desc orderna(decrescente) pela soma do campo q define a classificacao do jogador limit 10 limita a 10 resultados abraço Lucas kra MUITO OBRIGADO NUM SEI NEM COMO AGRADECER vlw d++ Compartilhar este post Link para o post Compartilhar em outros sites
LHAlmeida 0 Denunciar post Postado Abril 4, 2008 kra MUITO OBRIGADO NUM SEI NEM COMO AGRADECER vlw d++ de nada amigo, assim q estiver implementando se tiver mais alguma duvida, poste aih abraço Compartilhar este post Link para o post Compartilhar em outros sites