Afficher un résultat si plusieurs identiques [Résolu]

Euskalor 40 Messages postés mardi 4 mars 2008Date d'inscription 22 avril 2010 Dernière intervention - 20 juil. 2008 à 14:27 - Dernière réponse : Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention
- 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 :)
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 22:17
3
Merci
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.
à+

Merci Evangun 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Evangun
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 20:24
0
Merci
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

à+
Commenter la réponse de Evangun
Euskalor 40 Messages postés mardi 4 mars 2008Date d'inscription 22 avril 2010 Dernière intervention - 20 juil. 2008 à 21:33
0
Merci
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 ;) 
Commenter la réponse de Euskalor
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 21:54
0
Merci
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.

à+
Commenter la réponse de Evangun
Euskalor 40 Messages postés mardi 4 mars 2008Date d'inscription 22 avril 2010 Dernière intervention - 20 juil. 2008 à 21:58
0
Merci
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 !
Commenter la réponse de Euskalor
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 22:01
0
Merci
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...)
Commenter la réponse de Evangun
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 22:02
0
Merci
ha oui ok :)
Commenter la réponse de Evangun
Euskalor 40 Messages postés mardi 4 mars 2008Date d'inscription 22 avril 2010 Dernière intervention - 20 juil. 2008 à 22:04
0
Merci
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 !
Commenter la réponse de Euskalor
Euskalor 40 Messages postés mardi 4 mars 2008Date d'inscription 22 avril 2010 Dernière intervention - 20 juil. 2008 à 22:22
0
Merci
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 ;)
Commenter la réponse de Euskalor
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 20 juil. 2008 à 22:30
0
Merci
Parfait
A bientôt
Commenter la réponse de Evangun

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.