Muchas gracias por contestar gnzsoloyo.
No estoy muy familiarizado con MySQL...
Me sirvió a medias lo que me dijiste.
Si hago:
Código PHP:
$champ = mysql_query("SELECT competicion, nombre, SUM(goles), temporada
FROM competicion
WHERE temporada=(SELECT MAX(temporada) FROM competicion)
GROUP BY nombre, competicion
ORDER BY goles DESC", $link);
Me da:
Manolito, 5
Pepito, 3
Manolito, 2
Pepito, 2
Pepito, 1
Manolito, 0
Si hago (que supongo que es lo que querías decir en discriminado por jugador, se te ha colado el "group by competicion"):
Código PHP:
$champ = mysql_query("SELECT competicion, nombre, SUM(goles), temporada
FROM competicion
WHERE temporada=(SELECT MAX(temporada) FROM competicion)
GROUP BY nombre
ORDER BY goles DESC", $link);
Lo suma bien, pero no sé por qué no lo ordena

Y no entiendo por qué no...