J'ai 2 tables construites ainsi :
TABLE "fabrications" (qui contient toutes les fabrications de notre petite société artisanale) avec les champs suivant
ID_fab (int, not null, auto increment, clé primaire)
delais (date, not null)
client (varchar, not null)
et TABLE "etapes_fab" (qui contient toutes les étapes de fabrications pour chaque fabrication de la société) avec les champs suivant :
ID_etape (int, not null, auto increment, clé primaire)
fabricationID (int, not null)
atelier (varchar, not null)
operation (varchar; not null)
ordre (int, not null)
Le but est d'afficher un tableau dans lequel chaque ligne représente une fabrication avec ses étapes correspondantes donc le nombre de colonne change suivant la fabrication puisque que le nombre d'étapes n'est pas toujours le même.
Là,déjà j'ai lutté plusieurs jours avant de trouvé la solution qui est simple une fois qu'on la connais c'est à dire avec un LEFT JOIN dans la requête SQL et une rupture de séquence pour l'affichage dans le code PHP. Voici ma requête :
Code : Tout sélectionner
SELECT fabrications.ID_fab, fabrications.delais, fabrications.client, etapes_fab.ID_etape, etapes_fab.fabricationID, etapes_fab.atelier, etapes_fab.operation, etapes_fab.ordre
FROM fabrications LEFT JOIN etapes_fab ON fabrications.ID_fab=fabricationID
ORDER BY fabrications.delais ASC, fabrications.ID_fab, etapes_fab.ordre
Je voudrais pouvoir afficher uniquement les fabrications avec toutes ses étapes correspondantes dont au moins une de ses étapes contient l'atelier x (collage par exemple).
Moi, j'avais tout simplement rajouter une clause :
Code : Tout sélectionner
WHERE etapes_fab.atelier="collage"Voilà, je sais pas si c'est suffisamment clair. Peut-être que je m'y suis mal pris
Merci beaucoup pour votre aide !