Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/10/2011, 11:02
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: clasificacion (puestos) por puntajes

Bueno la solución es posible con MySQL (En una sola consulta), la idea es crear un campo temporal con la numeración, aquí encontrarás un ejemplo:

MySQL – running totals/determine row position

Ahora una solución con PHP que no me parece tan optima pero igual funciona:

Código PHP:
Ver original
  1. <?php
  2. $c = mysql_connect('localhost', 'root', '12345');
  3. mysql_select_db('basededatos');
  4.  
  5. $sql = 'select * from puntaje order by p desc';
  6. $res = mysql_query($sql) or die(mysql_error());
  7.  
  8. $data = array();
  9. $x = 1;
  10.  
  11. while ($reg = mysql_fetch_array($res)) {
  12.     $data[$reg['id']] = array('puntaje' => $reg['p'], 'pos' => $x++);
  13. }
  14.  
  15. echo $data[1]['pos'] . '<br />'; //id 1 = posición 3
  16. echo $data[2]['pos'] . '<br />'; //id 1 = posición 1
  17. echo $data[3]['pos'] . '<br />'; //id 1 = posición 2
  18. echo $data[4]['pos'] . '<br />'; //id 1 = posición 4

Espero que te sirva alguna de las 2 formas, para mayor información consulta en el foro de MySQL. Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP