Une requête qui multiplie l'affichage !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Une requête qui multiplie l'affichage !

par Sebe » 27 oct. 2007, 09:32

Après une nuit d'interrogation, je me suis remis au travail pour découvrir mes erreur ... c'est gros comme une montagne mais vu l'heure, j'avais une excuse :lol:
$query = "SELECT clas.id as clas_id, clas.course_id, clas.dossard as dossard_course, clas.temps, clas.place, clas.moyenne, clas.point, clas.vitesse, "
    	. "\n course.id, course.course, course.date as days, course.pat_chal, course.lieu, course.kilometrage, course.nbre_part, course.epreuve_id"    
	. "\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') = '" . (int)$annee . "' AND clas.dossard = '" . (int)$dossard . "'"
	. "\n ORDER BY course.date ASC"
	;
$database->setQuery( $query );
$claslist= $database -> loadObjectList();
J'avais renommé un champs avec le même nom que dans une autre table + pas fait la jonction entre les 2 tables ... désolé !

A+

Une requête qui multiplie l'affichage !

par Sebe » 27 oct. 2007, 00:18

Bonjour,

J'essaye de faire un composant (joomla!) qui permettrait de gérer des classement de course à pied ... je coince sur une requête qui me permettrait d'afficher toutes les courses d'une année pour un coureur !
Dans un 1er temps, en fonction de l'année et de l'id du participant, je récupère son dossard:
$id=21;
$année=2004;

$query = "SELECT *"
    	. "\n FROM #__classement_chang"
		. "\n WHERE participant_id = $id AND annee = $annee"
 		;
	$database->setQuery( $query );
	$database->loadObject($runner);

	$dossard = $runner->dossard;
echo '<br/>$dossard = ' . $dossard;
Jusque là c'est bon ... c'est le bon dossard qui s'affiche !
Ensuite grâce à l'année et au dossard, je voudrais afficher tous les classements dans lesquels le coureur apparaît :
$query = "SELECT clas.id as clas_id, clas.course_id, clas.dossard as dossard_course, clas.temps, clas.place, clas.moyenne, clas.point, clas.vitesse, "
    . "\n course.id as course_id, course.course, course.date as days, course.pat_chal, course.lieu, course.kilometrage, course.nbre_part, course.epreuve_id"    
	. "\n FROM #__classement AS clas"
    . "\n INNER JOIN #__classement_course AS course"
	. "\n WHERE DATE_FORMAT(course.date,'%Y') = '" . (int)$annee . "' AND clas.dossard = '" . (int)$dossard . "'"
	. "\n ORDER BY course.date ASC"
	;
$database->setQuery( $query );
$claslist= $database -> loadObjectList();
Le problème est qu'un même classement s'affiche plusieurs fois et des coureurs différents (d'un classement à l'autre) apparaissent en plus ... je me doute bien que j'ai foiré quelque part mais je ne vois pas où !

Si quelqu'un avait une idée pour faire avancer l'animal, ce serait sympa ... merci