|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
Bonjour,
j'ai une souci avec un affichage de donnée avec du SQL Je vous explique mon but : J'ai 2 tables 1er : une table User (champs : id, nom, prenom, email, user, pass, level et actif) 2e : une table soirée (champs : id, titre_soiree, date, personne ) ce que je veux faire c'est d'afficher sur une page web, toute les soirées que l'on a fait et pour chaque soirée qui est venue. Donc, cela j'y arrive, mais dans mon champs : personne, il me mets les numéros des id des users et non les noms Ex désiré: Soirée du 24.06.11 :participant : Monsieur X, Madame Y, Monsieur Z Ce que ca me donne sur ma page : Soirée du 24.06.11 :participant : 1, 2, 3 ( 1 = Monsieur X 2 = Madame Y 3 = Monsieur Z ) Dans ma base de donnée, dans le champs personne de la table Soirée, j'ai comme donnée : 1,2,3 (quand j'insère une ligne, j'ai fait en sorte que je peux sélectionner en case à cocher toute personne présente dans la soirée, et ca me retourne comme information l'id des user dans le champs personne) J'espère avoir été assez claire, c'est jamais facile d'expliquer un problème.. en tout cas, merci d'avance de votre aide.. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
ce serait bien de fournir la requête en cause (en indiquant aussi le SGBD utilisé). Cela semble lié au fait que la colonne sélectionnée devrait être Nom et Prenom ? |
|
|
00
|
|
|
#3 |
![]() ![]() |
Il faut faire une jointure entre les deux tables afin de récupérer le nom de la personne.
Ce serait bien aussi de nous donner la requête que tu as faite et qui aboutit au résultat obtenu.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#4 | ||
|
Membre habitué
![]() Gaëtan Développeur Oracle Inscription : mai 2006 Messages : 117 ![]() |
Bonjour,
Pour faire propre une table User : id ( PK ? ), nom, prénom, émail, user, pass, level actif table soirée : id ( PK ), titre_soiree, date, personne_ID ( FK avec l'ID de la table user) Pour ta requête je dirais Code :
Code :
WHERE A.ID= parametre_soirée OR B.ID=parametre_user |
||
|
|
01
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Black LagoonÉtudiant Inscription : mai 2010 Messages : 15 ![]() |
Comme l'ont dit CinePhil et Olivier, il faut que tu nous donnes la requête que tu as utilisé.
À première vue, il me semble que la colonne personne dans la table soirée est une clé étrangère qui pointe vers Id de la table User, si c'est le cas je pense que tu as mal conçu ta base de données. J'imagine ton MCD comme suit : User (0,n) ------- participer ------- (1,1) Soirée Je traduis : "Une personne peut participer dans plusieurs soirées, et Une soirée ne peut avoir qu'une seule personne" Mais le fait que tu obtiens un résultat avec les Id des personnes participants à une seule soirée montre que mon hypothèse est fausse. Cependant, cela n'explique pas le fait d'avoir une clé etrangère qui pointe vers User(Id) dans la table soirée, à moins que ce champ ne représente pas une clé étrangère, dans ce cas je crois qu'il serait convenable que tu nous donnes plus de détails. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
je mettrais ma requête dès ce soir, je suis au boulot là (je suis juste venu voir).. mais dès ce soir, je vous balance ma requête, à ce que je peux voir dans vos réponses, ça me semble une solution correcte, il me manque le lien entre les tables et l'id.
Merci pour votre rapidité et de vos réponse. |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
voilà la requete, en esperant qu'elle soit claire, mais avec des pros comme vous, je me dis qu'il ne doit pas y avoir de problème..
Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Gaëtan Développeur Oracle Inscription : mai 2006 Messages : 117 ![]() |
tu es sur de ta requête ?
tu fais une jointure ouverte avec la table T_USER mais tu ne l'utilises pas dans ton select, c'est normal ? |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
j'ai essayé vos conseils, alors ça fonctionne, mais cela ne me donne que le premier enregistrement,
1,2,3 j'ai que le 1 qui va rechercher le bon nom de personne, le 2 et 3 ne sont pas présents |
|
|
00
|
|
|
#10 | |||||
|
Candidat au titre de Membre du Club
![]() Black LagoonÉtudiant Inscription : mai 2010 Messages : 15 ![]() |
Citation:
Code :
Pouvez-vous illustrer par un simple exemple les données de la table soirée? |
|||||
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
merci pour les réponses, j'étais un peu en vacances, je n'ai pas eu le temps de vous répondre...
Alors la requête fonctionne bien, par contre, cela m'affiche uniquement le premier user qui est dans mon champ. les données de ma table soirée: id (1) de type INT date (16.02.2010) de type DATE type (anniversaire) de type TEXT id_personnes (1,2,3) de type TEXT les données de la table user (je l'ai renommé pour ne pas avoir user, mais pour l'exemple je garde user) : id (1)/pseudo (nom1) id (2)/pseudo (nom2) id (3)/pseudo (nom3) et le résultat que j'aimerais avoir à l'écran est : Anniversaire du 16.02.2010 : personnes présentes : Nom1 / Nom2 / Nom3 et actuellement avec la requête, j'ai comme résultat : Anniversaire du 16.02.2010 : personnes présentent : Nom1 (il me met que le premier nom).. Comment puis-je faire pour qu'il lise le champ id_personnes et qu'il me remplace 1,2,3 par Nom1, Nom2, Nom3 ? merci d'avance |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
bonjour,
recherchez le mot clef pivot + le nom de votre SGBDD sur google. Ensuite revenez avec vos essais + problèmes rencontrés (et précisez votre SGBD le cas échéant) |
|
|
00
|
|
|
#13 | |
![]() ![]() |
Présente tes données en colonnes parce que là j'ai un gros doute avec ce que tu nous présentes :
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
Alors, je ne vais pas vous rassurer je crois, mais en effet tout mes id user sont dans le même champ (on m'avait conseillé de faire comme cela). Je vous ai mis en pièce joint un pdf pour un peu expliquer le système.
J'ai une table qui répertorie toute les soirée faites. Il va chercher les jeux joués dans la table JEUX et les personnes dans la table PERSONNES. Mais à ce que vous me dîtes, je suis très mal barré au niveau de la structure des mes bases. J'ai un peu du mal à comprendre comment procéder. Vous me dîtes de faire un ligne par Id personnes, donc quand j'insère une soirée et qu'il y a 10 personnes, dans la table soirée il devrait avoir 10 ligne, c'est bien ça ? Donc une table JEUX, une table PERSONNES et une table entre les deux qui vient récupérer les infos des 2 autres tables ? |
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
oula,
oui celui qui vous a conseillé ça.. ne l'écoutez plus Si votre projet n'est pas trop avancé un petit tour par la case modélisation serait, je penses, une bonne idée. En gros, fsmrel me corrigera peut-être, voici une structure un peu plus adéquate à votre besoin (il faudra la développer avec vos besoin réel) : MCD : Personne 0,n ----- participe ----- 0,n Soirée Soirée 1,1 -------possède------ 0,n Jeux La relation entre soirée et jeux peut-être 1,n je ne sais pas si vous pouvez avoir plusieurs activité ou non durant une soirée. Du coup quand on passe au MPD : T_PERSONNE_PER (PER_ID, ...) T_SOIREE_SOI (SOI_ID, JEU_ID (fk), .....) R_PER_SOI (PER_ID, SOI_ID, ....) T_JEUX_JEU (JEU_ID, ....) Votre "table de jointure" qui est une relation est donc la table R_PER_SOI. Elle vous permettra de gérer indépendamment les soirées, et les personnes y participant. Dans le cas où vous avez une relation 1,n entre Soirée et Jeux il vous faudra une autre table de relation entre ces deux tables .. voire une 3eme pour savoir qui participe à quoi. Bref à développer avec votre besoin réel ! |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 21 ![]() |
ok, je crois que vais partir sur cette solution, elle me semble plus correcte. Je vais oublier les id dans 1 champ (et taper sur les doigts de celui qui m'a montré comment faire ça, pourtant il m'avait assuré que c'était la bonne solution
Encore merci de votre aide, super sympa, je vais essayer de ne pas trop vous embêter.. |
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
présentez votre projet actuel ici : http://www.developpez.net/forums/f62...sation/schema/
et développez correctement votre besoin et votre existant ! Si vous partez pour refaire une partie de votre projet faites le correctement |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com