[MySQL] Je coince sur un problème MySQL/PHP

Je coince sur un problème MySQL/PHP [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 06-02-2006 à 18:44:38    

Bonjour,
 
J'ai une table nommée "formations" qui contient notamment les champs id, module, obj, et surtout un champ famille_id qui donne pour une formation donnée l'id (provenant d'une autre table nommée "famille" ) de la famille de cette formation, c'est-à-dire concrètement :
 
si famille_id contient par exemple (13,18,21), cela fait référence à la table "famille" avec
 
id_fam, nom_fam
13, Gestion service au Client
18,  Management transverse Client
21,  Marketing
 
Comment faire une requête PHP qui affichera une page HTML avec module, obj, nom_famille en clair ?
 
Donc en gros comment faire le lien entre l'id_fam de la table "formation" et le nom de la famille (nom_fam) dans la table "famille" ?
Si c'est une jointure, je ne vois pas comment l'écrire...
 
Car comme l'exemple le montre ci-dessus, une formation peut faire partie de plusieurs familles de formations.
 
A mon avis le problème est sans doute dû à une mauvaise modélisation des données dès le départ ; mais maintenant que le mal est fait, il faut bien que je m'en débrouille...
 
Merci par avance de vos conseils. Là je coince !!
 
 :(

Reply

Marsh Posté le 06-02-2006 à 18:44:38   

Reply

Marsh Posté le 06-02-2006 à 20:20:07    

pour commerncer, ce n'est pas une requête PHP, mais un requête SQL
pour ta requête, c'est comme tu le dis : il faut faire une jointure

Code :
  1. select
  2.    a.module, a.obj, b.nom_fam
  3. from
  4.    formations a, famille b
  5. where
  6.    a.famille_id=b.id_fam
  7. ;

Reply

Marsh Posté le 06-02-2006 à 20:54:32    

Heu mais en fait le problème c'est qu'il peut y avoir plusieurs famille_id, séparés par une virgule, dans le champ a.famille_id...


Message édité par weuw le 06-02-2006 à 20:55:05
Reply

Marsh Posté le 06-02-2006 à 21:31:34    

lol effectivement vu comme ca c'est méga crade
bon puisqu'on est dans la "craditude" vous me pardonnerez tous cette requête :

Code :
  1. select
  2.    a.module, a.obj, b.nom_fam
  3. from
  4.    formations a, famille b
  5. where
  6.    locate(
  7.       concat(b.id_fam, ', '),
  8.       concat(a.famille_id, ', ')
  9.     )<>0
  10. ;


Message édité par couak le 06-02-2006 à 21:32:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed