Afficher un résultat si plusieurs identiques

Résolu
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010 - 20 juil. 2008 à 14:27
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 20 juil. 2008 à 22:30
Bonjour à toutes et à tous !

Je suis en train de faire une page de statistiques pour mon site. Et j'aimerais pour l'affichage, classer les résultat par année.

Pour mieux expliquer voilà comment je vois les choses :
Voici comment sont les données dans la base !

ID              Ville            Année
 1             Lorient           2008
 2             Quéven          2008
 3             Lorient           2007 
 4             Quéven          2007

Je voudrais classer par ville et pour chaque ville les années existante du style
Lorient :                        
2007
2008
Etc...

Alors je voudrais savoir si il est possible de faire une condition dans l'affichage du résultat de ma requète lui demandant que si un résultat est identique à un autre dans ville il n'en affiche qu'un avec les différentes années ?

Pour info j'ai déjà fait ce système mais je fonctionnait avec 2 bases de donnée une pour les noms et l'autre pour leurs contenu, je me demandait simplement si il était possible de le faire avec une seule :)

J'espère avoir été clair dans mes explications ! 

Merci d'avance pour vos réponses !!

A bientôt :)

10 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 22:17
Oui il vaut mieux le faire dans tous les cas, non seulement c'est plus logique d'un point de vue programmation, mais en plus ce sera plus rapide au niveau temps d'exécution, vu que tes recherches s'effectueront sur des champs numériques (comparaison sur l'id de la ville) et non sur un champ de caractères.
à+
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 20:24
Salut,

Je n'ai pas exactement saisi ta question mais ceci devrait y répondre :

GROUP BY

http://dev.mysql.com/doc/refman/5.0/fr/select.html

à+
0
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010
20 juil. 2008 à 21:33
C'est vrai je n'avais pas pensé à voir avec GROUP BY :) Bon il y a une amélioration ! J'ai toutes les villes qui s'affiche mais avec une seule date :(

Pour préciser mon problème, je voudrais que mes résultat soit afficher par ville et que pour chaque ville il y ai toutes les dates !

Du style Lorient 2008 2007
             Quéven 2008 2007

Les date en cliquant dessus amèneront aux tableau statistiques de la ville pour l'année correspondante !

Avec un SELECT classique, je vois la ville plusieurs fois afficher pour chaque année alors que je veux qu'elle soit affiché une fois et toutes les dates en dessous.

Bref, j'ai beau essayer ça ne fait pas ce que je veux ;) Donc je pense que je vais choisir la solution que je connais déjà c'est-à-dire utilisé deux basse de donnée, A moins qu'on me dise que je peut le faire avec une ;)

A bientôt ! J'espère avoir mieux préciser mon problème ;) 
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 21:54
2 bases de données... tu veux dire 2 tables ?

Euh donc si tu veux que sur une seule ligne de résultat il y ait :

Lorient        2008     2007     2006

c'est impossible.

Sauf si... la seule possibilité que je voie, et elle demande à être vérifiée, c'est si tu peux utiliser CONCAT. Dans le cadre d'une commande GROUP BY, peut-être que CONCAT accepte de concaténer les champs d'une même colonne, je n'ai jamais essayé.

tu pourrais donc te retrouver avec par exemple

Lorient      2008-2007-2006

Mais là il y a bien 2 colonnes, ça ne rajoute pas une colonne pour chaque année (pas possible ça).
Je suis curieux de savoir si tu y arrives comme ça.

à+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010
20 juil. 2008 à 21:58
Je suis justement en train de lire des tutos pour l'utilisation des CONCAT pour mon cas, mais comme toi je doute vraiment de la possibilité de le faire.

La seule solution pour arriver à ce que je veux c'est bien avec deux table ;)

Je vais toujours tenter avec le CONCAT et je te tiendrais au courant !
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 22:01
Sinon une question : pourquoi pas une table ville, chaque ville aura un id, et une table années, qui fait référence à la ville ?
C'est ce qui paraît le plus logique. c'est peut-être ce que tu avais fait avant (j'ai pas très bien compris quand tu parles de bases avec le nom d'une part et le contenu d'une autre...)
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 22:02
ha oui ok :)
0
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010
20 juil. 2008 à 22:04
Oui je voualais parler de table et non de base ^^ Et c'est ce que je compte faire si le CONCAT ne passe pas ! Comme j'ai pu le faire auparavant !
0
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010
20 juil. 2008 à 22:22
Oui, je m'en rend bien compte et c'est surtout beaucoup plus simple à faire !!

Je repars dans ma première idée : utiliser deux tables ! Plus simple, plus rapide etc... et au moins on est sure que ça marche !!

Merci en tout cas pour tes réponses cela aurait permis d'être sure que ce n'était pas possible !

Je rajouterais aussi que çe ne sert pas à grand chose de mettre trop de conditions dans une requète sous peine de voir le temps d'exécution se rallonger !

Merci  !

PS : Je valide la réponse pour clore le sujet ;)
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
20 juil. 2008 à 22:30
Parfait
A bientôt
0
Rejoignez-nous