J'ai une table SQL de participations à un concours, de cette forme (en version simplifiée) :
CREATE TABLE IF NOT EXISTS `participations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`note` float NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=93 ;
INSERT INTO `participations` (`id`, `note`) VALUES
(1, 1),
(2, 4),
(3, 4),
(5, 4),
(86, 10),
(85, 5),
(84, 5),
(83, 4),
(82, 2),
(81, 9),
(80, 1),
(79, 4),
(78, 10),
(77, 8),
(76, 8),
(75, 3),
(74, 0),
(73, 3),
(72, 2),
(71, 0),
(70, 2),
(69, 1),
(68, 8),
(67, 9),
(66, 4),
(65, 4),
(64, 1),
(63, 9),
(62, 1),
(61, 9);
J'aimerai, en utilisant le moins de ressources possibles (ressources SQL, boucles PHP), me retrouver avec un tableau PHP faisant office de classement groupé, par note.Dans ce tableau, les clés seraient les notes, ordonnées par ordre décroissant (donc de 10 à 0), et contiendrai chacune un tableau des ID correspondants.
Sur les premières lignes de la table SQL, cela donnerait :
Array(
[10] => Array(
[0] => 78,
[1] => 86
),
[9] => Array(
[0] => 63,
[1] => 67,
[2] => 81
),
)
etc..Comment faire cela sans surcharger le serveur de requêtes SQL et de boucles PHP inutiles ?