Comunidad de diseño web y desarrollo en internet online

Top 10 en PHP y MySQL agrupar por nombre

Citar            
MensajeEscrito el 03 Mar 2011 10:01 pm
Buen día, con el siguiente código logro que php me haga una lista de los 10 registros ordenados con el puntaje más alto, el problema es que cuando los agrupo con "group by" para que no me salga repetido el nombre del jugador, en lugar de mostrarme el puntaje mas alto del jugador "x" me muestra su primer registro que tuvo en mysql ordenados obviamente de mayor a menor, pero yo quiero que me muestre el registro mas alto de cada jugador sin repetirse y obviamente ordenado de mayor a menor, les agradecería me orientaran como podría modificar mi código.


Código PHP :

<?php
 $conection = mysql_connect("localhost","usuario","pass") or die("no se puede conectar a SQL Server");
mysql_select_db("nombretabla",$conection);
//aca los ordeno de mayor a menor y solo muestro 10
$todos = "SELECT * from puntaje ORDER BY puntos DESC LIMIT 0,10";  
?>
//y aca los imprimo
<table >
<?
 $result = mysql_query( $todos );
 while( $row = mysql_fetch_array( $result ) )
     {
 ?>
           <tr>
           <td > <img src="https://graph.facebook.com/<? echo $row['idfacebook'] ?>/picture"></td>
           <td ><? echo $row['nombre'] ?></td>
           <td ><? echo $row['puntos'] ?></td>
            <td ><? echo $row['nivel'] ?></td>
            </tr> <?
        } ?>                   
            </table>
<?  mysql_close( $conection );  ?>

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 04 Mar 2011 12:39 am
alguien??????
:o

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome
Citar            
MensajeEscrito el 04 Mar 2011 01:57 am
Bueno hasta el momento con el siguiente codigo logre que me mostrara el puntaje mas alto de cada jugador sin repetir el nombre del jugador:

Código PHP :

$todos = "SELECT idfacebook,nombre,puntos,nivel, MAX(puntos) AS puntos FROM puntaje GROUP BY nombre ORDER BY puntos DESC LIMIT 0,10";


El problema es que la fila donde esta el registro del mayor puntaje tiene una columna llamada "nivel" y al mostrar la consulta me da el mayor puntaje pero no coincide con la informacion de "nivel" que tiene en su misma fila, un ejemplo si no me entendieron:

//DATOS MUESTRA
NOMBRE__PUNTOS__NIVEL

PACO______10______1
LAURA____ 345______8
MEMO ____40 ______ 4
PACO ____245 ______6
LAURA____4 ________2
MEMO ____578______3


// al hacer la consulta Con max me muestra esto

NOMBRE__PUNTOS__NIVEL

MEMO______578____ 4
LAURA _____345 ____2
PACO ______245____ 1

// CUANDO DEBERIA MOSTRARME LO SIGUIENTE

NOMBRE__PUNTOS__NIVEL

MEMO______ 578 ____3
LAURA ______345 ____8
PACO ______245 _____6

Por erigobre

26 de clabLevel



 

México Distrito Federal

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.