Euskalor
Messages postés40Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention22 avril 2010
-
20 juil. 2008 à 14:27
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 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 :)
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 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.
à+
Euskalor
Messages postés40Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention22 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 ;)
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 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.
à+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Euskalor
Messages postés40Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention22 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 !
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 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...)
Euskalor
Messages postés40Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention22 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 !