• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

!Rei120

Tabela

6 mensagens neste tópico

Boas,tou a desenvolver uma script que irá aparecer uma tabela e ordenada por nivel será qualquer coisa como isto

  nome  | Nivel

Jogador1  | 52

Jogador4  | 50

Jogador2  | 46

Jogador3  | 45

Mas em tabela, e queria adicionar a posição tipo

Pos |  nome  | Nivel

1    |Jogador1  | 52

2    |Jogador4  | 50

3    |Jogador2  | 46

4    |Jogador3  | 45

Tou a trabalhar com PHP e SQL. Como posso fazer para adicionar as posiçoes?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só que o valor de jogadores vai variado hoje podem estar 21 amanha podem estar 23

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fazes uma query ordenado pelo campo q define o ranking

SELECT * FROM `players` ORDER BY `pontos`;

crias um array com os resultados e usas um for para imprimir.

for ($i = 1 ; $i<=count($arr); $i++){
       echo '<tr><td>'.$i.'</td><td>'.$arr[$i]['nome'].'</td><td>'.$arr[$i]['pontos'].'</td></tr>'
}

caso não queiras usar a base de dados para ordenar.

fazes a query e carregas os resultados para um array, depois usas esta função para ordenar pelo campo que define o ranking.

function sort2d($array, $index, $order='asc', $natsort=FALSE, $case_sensitive=FALSE)
{
	if (is_array($array) && count($array)>0)
	{
		foreach (array_keys($array) as $key)
			$temp[$key] = $array[$key][$index];
		if (!$natsort)
			($order=='asc')? asort($temp):arsort($temp);
		else 
		{
			($case_sensitive)?natsort($temp):natcasesort($temp);
			if ($order!='asc')
				$temp=array_reverse($temp, TRUE);
		}
		foreach (array_keys($temp) as $key)
			(is_numeric($key))?$sorted[]=$array[$key]:$sorted[$key] = $array[$key];
		return $sorted;
	}
	return $array;
}	

imagina q o teu array esta desta forma

array (

      0=>array(

              'nome'=>'nome1',

              'pontos'=>99

      )

      1=>array(

              'nome'=>'nome2',

              'pontos'=>105

      )

)

ao fazeres

     $arr = sort2d($arr, 'name');

o teu array vai ficar

array (

      1=>array(

              'nome'=>'nome2',

              'pontos'=>105

      )

      0=>array(

              'nome'=>'nome1',

              'pontos'=>99

      )

)

depois é só fazer um for para imprimir

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado a todos mas já consegui fiz uma estrutura de Repetição While $i=1  $u=$u+$i

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora