Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Une saisie par formulaire alimente 1 table (nom_activites --> id_titre, titre, activité, mois, annee) qui stocke les demandes des enfants.
J'obtiens
Livre Jeu Vidéo
Janvier 45 62 73
Février 81 54 67
…
Décembre 0 0 0
avec une boucle sur les mois + 3 requêtes du type:
$nb_jeu= mysql_query("SELECT COUNT(titre) AS nbre_entrees FROM mom_activites WHERE annee=$an AND mois='".$tab_mois[$i]."' AND activité= 'jeu'");
$qj = mysql_fetch_array($nb_jeu);
La même chose pour nb_livre puis nb_video.
Je pense qu'il est possible d'obtenir le même résultat en 1 seule requête,
mais je sèche…
Merci pour votre aide.
Hors ligne
Saluton,
Je pense qu'il est possible d'obtenir le même résultat en 1 seule requête,
mais je sèche…
Et bien, tu penses mal, ma chère lili.
Ceci dit, je t'engage à lire ce mien article.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Je ne suis pas tout à fait du même avis que MK.
En fait cela dépends de deux choses.
1) Soit tu cherches à obtenir les résultats dans un contexte relationnel et donc réexploitables dans une autre requête sans modification des données obtenues initialement, et là je te dis, Cf le lien de MK.
2) Soit ton but c'est d'obtenir l'ensemble des informations recherchées en une seule requête. Et dans le contexte particulier de ce que tu cherches à faire, je te répondrais OUI.
Mais il y a plusieurs contraintes pour que cela soit envisageable.
a) Il te faut une base de données normalisée correctement de manière à rendre une telle requête possible. Dans ton cas ça à l'air d'être le cas.
b) Il te faudra choisir et determiner à l'avance les types d'activités dont tu souhaites récupérer les informations (pas de dynamique possible sans PHP ici et cela rejoint le lien de MK).
c) Il y a cependant un inconvénient: Il te faudra extraire et traiter les données obtenues par ta requête en PHP avant de pouvoir les afficher.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Tu peux aussi prendre connaissance de ces deux liens :
http://datacharmer.org/downloads/pivot_ … ysql_5.pdf
http://en.wikibooks.org/wiki/MySQL/Pivot_table.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Jc : c'est cela, j'essaie d' obtenir l'ensemble des résultats en 1 requête.
MK : je me penche sur les infos au bout des liens.
Merci à vous 2.
Hors ligne
PS: Cela aurait été plus pratique de mettre par ex un timestamp avec un defaut current timestamp lors de la création de tes enregistrements. Ainsi sur un seul champ tu peux en déduire, le mois, l'année, le jour, l'heure ou encore la minute, ou seconde à laquelle cela a été saisie. Cela complique de définir un champ pour chaque. L'intérêt de faire comme tu as fais, (dans ton cas ce n'est pas le cas) c'est lorsque tu n'as besoin que de l'infos mois par exemple, de réduire l'espace mémoire de stockage en ne choisissant pas DATETIME ou TIMESTAMP qui est plus important.
Le champs mois est défini avec le type MONTH et année avec le type YEAR?
++
Dernière modification par Jc (21-11-2011 19:02:41)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
L'idée est là
Alors c'est la première fois que je fais ce genre d'exercice sur une auto equijointure^^ donc je garantie rien.
Que l'on soit bien d'accord, le but est de rappatrier les données pas de faire des stats avec en MySQL (cf liens de MK).
Attention toutefois, MySQL risque de te demander de préciser la collation selon ton contexte d'exploitation, ce qui sera a faire au sein de la commande GROUP_CONCAT (cf documentation MySQL).
J'ai considéré également un champ mois au format numérique. Si cela n'est pas le cas, un DATE_FORMAT devrait suffire.
Ensuite pour récupérer le tout en php, restera à faire un explode sur les champs puis une boucle pour afficher tout ceci.
Petit conseil : pour cette requête indexe l'annee et le mois^^.
++
Dernière modification par Jc (21-11-2011 21:16:21)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Note: Il est même envisageable de raccourcir la requête en rajoutant un niveau de dérivation et de classer les activités par ordre alphabétique et de faire un regroupement par activité...
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Waow, j'ai de quoi plancher!
Merci.
J'étudie tout ça de près dès que la vie associative me laisse 1 journée de libre.
bonne soirée.
Hors ligne
Pages :: 1