removido
(usa Nenhuma)
Enviado em 05/01/2011 - 19:57h
Bem se entendi você quer saber quando fazer o select para poupar processamento...
Bem... Você pode fazer o select quando o usuario fazer o login e guardar na tabela de usuários logados e só atualizar em um novo login.
Mas acho melhor guardar este valor no cookie de sessão dele e só atualizá-lo em um nova sessão ou ainda para este caso e o anterior da tabela; quando um intervalo de tempo ( tipo 1 hora ) for atingido.
<?php
/**
* @file getRanking.inc.php
* Recebe a identificação de um usuário e retorna o seu ranking.
*
* @author Paulo Riceli Dias Lelis
* @more http://pauloriccelli@blogspot.com
*
* @param string
* @return int
**/
function _getRanking( $user_id = null )
{
$sql = 'SELECT
`usuario`, `pontos`
FROM
`usuarios` ORDER BY `pontos` DESC';
$query = mysql_query( $sql );
// inicia o contador
$cont = 0;
while( $rows = mysql_fetch_row( $query ) )
{
$cont++;
if( "$rows['0']" === "$user_id" )
{
return $cont;
}
}
}
?>
Em uma tela com múltiplos rankings a serem mostrados você poderia usar a rotina acima para cada id encontrada. Eg.
<?php
// um possível trecho de código que mostra uma tela com muitos rankings:
while( $rows = mysql_fetch_array( $query_pagina ) )
{
$ranking = _getRanking( $rows['id'] );
echo $rows['nome'] . ' ranking ' . $ranking ;
}
?>
Caso não tenha entendido retorne-nos sua duvida por favor. Temos certeza que poderemos lhe ajudar.
Nota :
Os códigos acima apesar de funcionais estão intratados( toscos ).