DouglasP 1 Denunciar post Postado Julho 4, 2009 Boa tarde, tenho um php no qual quero que mostre posição da conta na tabela. no caso e um painel no qual em uma seção ta escrito Ranking: ai deveria mostrar a posição que sua conta se encontra. tentei fazer aqui usando a mesma logica de exibir varias porem não consegui. Alguem me da uma luz? gratol OBS: o banco de dados é SQL Server. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 4, 2009 Já tem alguma coisa? O que tentou fazer? Apresentou algum erro? Qual a estrutura das tabelas? Ajude-nos a te ajudar Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Julho 4, 2009 Para fazer um ranking normal exibindo todas contas é assim: $query = 'SELECT TOP 15 Name, Class from Character where CtlCode < 1 ORDER BY resets DESC, cLevel DESC'; $result = mssql_query($query); for($i=0;$i < mssql_num_rows($result);++$i) { $row = mssql_fetch_row($result); $rank = $i+1; sendo $rank a posição, porem preciso fazer para que exiba apenas a conta do cliente logado Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 4, 2009 Vamos tentar entender a dúvida... você tem um ranking - funcionando você quer que, ao usuário entrar mostre a posição dele no ranking... é isto? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
PlebeuSamurai 0 Denunciar post Postado Julho 4, 2009 $chave = $_GET['chave']; //chave é o identificador da linha na tabela do ranking (usualmente ID); $query = mysql_query("SELECT * FROM `tabela` ORDER BY `chave` ASC"); if(mysql_num_rows($query)) { $p = 1; while($res = mysql_fetch_array($query)) { if($res['chave'] == $chave) { break(); } $p++; } } echo "Posição:".$p; Lembrando que o campo chave é único e usualmente auto_increment da tabela. Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Julho 4, 2009 @ PlebeuSamurai, testei seu codigo aqui amigo, porem todos ficam com o ranking = 2. @ matias_rezende, correto amigo, quero que mostre apenas a dele. Compartilhar este post Link para o post Compartilhar em outros sites
PlebeuSamurai 0 Denunciar post Postado Julho 4, 2009 O que você colocou na chave??? Se você está fazendo a verificação pelo nome do personagem você precisa alterar este código pra encaixar nessa especificação, se for pelo ID do personagem devia funcionar bem. Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Julho 4, 2009 Aconteçe que os personagens não possuem id proprio, sao reconheçidos pelo nome ^^ Compartilhar este post Link para o post Compartilhar em outros sites
PlebeuSamurai 0 Denunciar post Postado Julho 4, 2009 Ahhh a cláusula ORDER BY deve ser essa da sua query original... ORDER BY resets DESC, cLevel DESC. Assim o campo chave que eu disse pode ser qualquer coisa desde que seja única também... Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Julho 4, 2009 Porem como ele determinaria a pos. de cada personagem ja que na query nao ta especificado de quem puxar ? Compartilhar este post Link para o post Compartilhar em outros sites
PlebeuSamurai 0 Denunciar post Postado Julho 4, 2009 $charName = $_GET['charName']; //chave é o identificador da linha na tabela do ranking (usualmente ID); $query = mysql_query("SELECT * FROM `Character` where CtlCode < 1 ORDER BY resets DESC, cLevel DESC"); if(mysql_num_rows($query)) { $p = 1; while($res = mysql_fetch_array($query)) { if($res['charName'] == $charName) { break(); } $p++; } } echo "Posição:".$p; Eu assumi charName como sendo o nome do personagem na tabela e na variável GET... aí você altera essas variáveis como necessário. Não é na query que especifica o nome do personagem, e sim no loop. Bom, esse código é o que EU usaria... não sei se existe um que faça isso direto pelo MySQL e poupe recursos :) Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Julho 4, 2009 Funcionou entre partes amigos, o primeiro do ranking fica na posição 2, corrigi fixando p = 0. vlw amigo :] Compartilhar este post Link para o post Compartilhar em outros sites