Hola! Como bien dijeron, no sabemos como está compuesta la estructura de tus tablas y no sabemos como guardas la información. Pero a simple vista e imaginando, podría decir que el problema es en la búsqueda (obviamente...). Estás haciendo:
Código PHP:
WHERE J.DORSAL = C.DORSAL
El tema es que los dorsales son los números de los jugadores que se repiten en muchos equipos!
O estoy equivocado? Explicanos un poco más por favor.
Y lo mejor sería hacer un
limit 10 para traer la tabla de los 10 más goleadores.
Y mostrando:
Jugador: Apellido, Nombre - Goles: Cantidad.
Código PHP:
$champ = mysql_query("SELECT DISTINCT C.TEMPORADA, C.TIPO, J.NOMBRE, J.APELLIDO, SUM(C.GOLES)
FROM CAMPEONATO C, JUGADORES J
WHERE J.DORSAL=C.DORSAL AND TEMPORADA=(SELECT MAX(TEMPORADA) FROM CAMPEONATO)
ORDER BY C.GOLES DESC [B]limit 10[/B];", $link);
while ($row = @mysql_fetch_row($champ)){
echo "Jugador: ".$row[3].",".$row[2]." - Goles: ".$row[4]."<br>";
}