Addition limité pour classemenent général
Posté : 21 févr. 2008, 12:51
Bonjour,
J'essaye de mettre un classement général au point mais j'ai un petit soucis pour limiter le nombre maximum de données à additionner !
Dans un 1er temps, j'ai créé un tableau avec plusieurs appels de fonction :
Merci pour le tuyau
J'essaye de mettre un classement général au point mais j'ai un petit soucis pour limiter le nombre maximum de données à additionner !
Dans un 1er temps, j'ai créé un tableau avec plusieurs appels de fonction :
if ($runnerlist[0]->participant_id != '') {
$i=0;
foreach ($runnerlist as $runner){
$scoreslist[$i]= array(
'id' => $runner->participant_id,
'annee' => $annee,
'nom' => $runner->nom,
'prenom' => $runner->prenom,
'part_id' => $runner->part_id,
'dossard' => $runner->dossard,
'club' => $runner->club,
'pat' => $pat = count_course($annee, $dossard = $runner->dossard, $pat_chal = 'P'),
'chal' => $chal = count_course($annee, $dossard = $runner->dossard, $pat_chal = 'C'),
'nbre' => $pat + $chal,
'pointschal' => $ptchal = points($annee, $dossard = $runner->dossard),
'points' => calcpts($pat, $chal, $ptchal),
'categorie' => $runner->lastname); // dec_categorie());
$i ++;
}
foreach ($scoreslist as $key => $row) {
$score[$key] = $row['points'];
}
array_multisort($score, SORT_DESC, $scoreslist);
} // fin du if $runnerlist
Où cela merdouille un peu c'est pour la fonction points():
function points ($annee, $dossard) {
global $database;
$countch = 10;
$query = "SELECT SUM(clas.point) as somme, clas.dossard"
. "\n FROM #__classement AS clas"
. "\n INNER JOIN #__classement_course AS course ON course.id = clas.course_id"
. "\n WHERE course.date LIKE '" . (int)$annee . "-%' AND clas.dossard = '" . (int)$dossard . "' AND course.pat_chal = 'C'"
. "\n GROUP BY clas.dossard"
. "\n ORDER BY clas.point DESC"
. "\n LIMIT 0,10"
;
$database->setQuery( $query );
$pointchal = $database -> loadResult();
return $pointchal;
}
J'ai tenté de limiter le calcul à un maximum de 10 meilleures scores mais il m'additionne tous les scores existant pour la personne ... est-ce un problème d'utilisation avec 'LIMIT' ?Merci pour le tuyau