Faire un tableau array() trop complexe pour moi !
Posté : 06 nov. 2007, 12:09
Bonjour,
J'ai un petit soucis pour créer un tableau de type array() ... j'essaye d'y utiliser des fonctions, peut-être naïvement !
En résumé:
Je travaille pour créer un composant [Joomla!] qui permettra de gérer des classements de course à pied. Là, je voudrais afficher un classement général et après plusieurs recherches, il me semble que le tableau de type array() serait la meilleure piste ... c'est aussi la seule que j'ai
Dans un 1er temps (après avoir sélectionné une année) , je récupère (via leur dossard) les coureurs concernées c-à-d tout ceux qui ont couru durant cette année ... à noter que pour des facilités visuelles, j'ai limité à 5 coureurs !
Pour commencer, il faut compter le nombre de courses effectuées pour octroyer le bonus et j'ai pensée que j'aurai pu utiliser une fonction dans le tableau:
La fonction avec comme arguments l'année en question, le numéro de dossard et le type de course:
FIN DE LA 1er PARTIE
Merci
J'ai un petit soucis pour créer un tableau de type array() ... j'essaye d'y utiliser des fonctions, peut-être naïvement !
En résumé:
Je travaille pour créer un composant [Joomla!] qui permettra de gérer des classements de course à pied. Là, je voudrais afficher un classement général et après plusieurs recherches, il me semble que le tableau de type array() serait la meilleure piste ... c'est aussi la seule que j'ai
Dans un 1er temps (après avoir sélectionné une année) , je récupère (via leur dossard) les coureurs concernées c-à-d tout ceux qui ont couru durant cette année ... à noter que pour des facilités visuelles, j'ai limité à 5 coureurs !
$annee = 2004;
$countch = 5;
global $database;
$query = "SELECT chang.id, chang.club_id, chang.participant_id, chang.annee, chang.dossard, chang.categorie_id,"
. "\n part.id AS part_id, part.nom, part.prenom"
. "\n FROM #__classement_chang AS chang"
. "\n INNER JOIN #__classement_participant AS part ON part.id = chang.participant_id"
. "\n WHERE annee ='" . $annee . "'"
. "\n LIMIT $countch"
;
$database->setQuery( $query );
$runnerlist = $database -> loadObjectList();
$i=0;
foreach ($runnerlist as $runner){
$scores[$i]= array('annee' => $annee,'part_id' => $runner->part_id,'dossard' => $runner->dossard);
$i ++;
}
Pour construire mon classement général, je dois comptabiliser le nombre de point que le coureur a eu sur sa saison ... (faisons court) la sommes des points des 10 meilleures courses + bonus !Pour commencer, il faut compter le nombre de courses effectuées pour octroyer le bonus et j'ai pensée que j'aurai pu utiliser une fonction dans le tableau:
La fonction avec comme arguments l'année en question, le numéro de dossard et le type de course:
function count_course($annee, $dossard, $pat_chal) {
global $database;
$query = "SELECT "
. "\n COUNT(*)"
. "\n FROM #__classement AS clas"
. "\n INNER JOIN #__classement_course AS course ON course.id = clas.course_id"
. "\n WHERE DATE_FORMAT(course.date,'%Y') = '" . $annee . "' AND clas.dossard = '" . $dossard . "' AND course.pat_chal = '" . $pat_chal . "'"
. "\n GROUP BY clas.dossard"
;
$database->setQuery( $query );
$count = $database -> loadResult();
et l'appel:
echo $dossard = 195; // dossard par défaut pour voir si elle fonctionne
$pat = count_course($annee, $dossard, $pat_chal = 'P'); // patronnées
echo '<br/><br/>Courses patronnées = ' . $pat;
me renvoie ce que j'attendais:
Maintenant si j'incorpore cette fonction dans mon tableauCourses patronnées = 1
$i=0;
foreach ($runnerlist as $runner){
$scores[$i]= array('annee' => $annee,'part_id' => $runner->part_id,'dossard' => $runner->dossard,'pat' => count_course($annee, $dossard=$runner->dossard, $pat_chal = 'P'));
$i ++;
}
print_r($scores);
Cela fonction mais est-ce correcte de fonctionner ainsi ?FIN DE LA 1er PARTIE
Merci