gilles6975 Posté 22 Décembre 2006 Posté 22 Décembre 2006 Bonjour à tous. J'ai un petit problème de débutant que je n'arrive pas à résoudre Données : - 1 table sql agence - 1 table sql agent Objectif : afficher via php pour chaque agence les agents qui y sont affectés. La donnée commune entre les 2 tables est le nom de l'agence. Voila ce que j'ai fait dans mon php : $sql = " SELECT * FROM agence JOIN agent ON agence.nom_agence=agent.nom_agence ORDER BY agence.ville ASC";$req = mysql_query($sql) or die ("erreur sql !<br />".$sql."<br />".mysql_error()); //affichage des données: while( $result = mysql_fetch_object( $req ) ) { echo(" <h3>".$result->agence."</h3> <blockquote> <p>".$result->adresse."</p> <p>".$result->code_postal."</p> <p>".$result->ville."</p> [b]<p>".$result->nom_agent." ".$result->prenom_agent."</p>[/b] <p>Téléphone : ".$result->telephone." - Fax : ".$result->fax."</p> <p><a href=\"".$result->site."\" title=\"acces au site externe\">".$result->site."</a></p> </blockquote>\n"); } Le problème est que je n'arrive pas a afficher le nom de l'agence avec tous les agents présents dans cette agence. A chaque agent différent cela refait une fiche. Du coup les agences sont en n-uplons. Je pense qu'il faudrait faire une boucle sur la ligne nom_agent (en gras) mais je n'y arrive pas. Si quelqu'un pouvait me donner une piste merci d'avance.
tonsite Posté 22 Décembre 2006 Posté 22 Décembre 2006 Il te faut faire une boucle agent dans une boucle agence. Dans ta boucle agent tu filtres par l'id agence de l'agent. Evidement lorsque tu ajoutes un agent il faut que tu enregistres l'id de son agence. Il y a peut être une meilleur solution mais je ne connais que celle-ci.
gilles6975 Posté 22 Décembre 2006 Auteur Posté 22 Décembre 2006 Pour la boucle je suis ok sur le principe mais je n'arrive pas a l'ecrire. Faut il que je sorte du echo et que je refasse une requete ? Ca me arait bizarre. Chaque agent a une et une seule agence donc la ca ne pose pas de problème. Merci d'essayer de m'aider.
NorSeb Posté 22 Décembre 2006 Posté 22 Décembre 2006 Bonjour, Le principe le plus simple consiste à comparer, dans ta boucle, le nom de l'agence en cours avec le nom de l'agence précédente (donc il faut stocker le nom de l'agence précédente). Si les deux sont différents alors tu affiches le nom de l'agence, sinon tu passe...
gilles6975 Posté 22 Décembre 2006 Auteur Posté 22 Décembre 2006 je comprends l'idée mais je vois pas comment la réaliser. Il faut que je rajoute une condition dans cette partie du code ? while( $result = mysql_fetch_object( $req ) ) mon idée je déclare une variable temporaire : $agencetmp='agence.nom_agence'while ($agencetmp<>0)echo (" ".result->nom_agent." ") j'avoue être un peu perdu sur le coup
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant