login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Overzicht Creeren aan de hand van drie tabellen (Opgelost)

Offline Jurgo - 22/01/2009 14:45
Avatar van JurgoPHP interesse Hallo allemaal

Ik heb moeite met gegevens halen uit drie tabellen waar tussen verschillende relaties zitten.

Tabel1: Aanmelder
id_aanmelder
voornaam
tussenvoegsel
achternaam

Tabel2: Inschrijvingen
id_inschrijving
id_aanmelder
id_workshop

Tabel3: Workshop
id_workshop
workshop_naam

Ik wil een overzicht creeren met alle leerlingen en hun keuze's daarbij van welke workshop ze gaan volgen. Let op iedereen kan 4 workshop's volgen, dat is een lastig item.
Het overzicht kan er zo uitzien.
voornaam, workshop1, workshop2, workshop3, workshop4
voornaam, workshop1, workshop2, workshop3, workshop4
voornaam, workshop1, workshop2, workshop3, workshop4
voornaam, workshop1, workshop2, workshop3, workshop4

Elke aanmelder staat in dit overzicht. en kan dus 4 workshop's volgen, dit wil ik allemaal in één tabel, maar dat lukt me niet. Ik hoop dat iemand mij hier kan helpen.

Met vriendelijk groet,

Jurgo

4 antwoorden

Gesponsorde links
Offline marten - 22/01/2009 16:05 (laatste wijziging 22/01/2009 16:06)
Avatar van marten Beheerder
  1. SELECT
  2. Aanmelder.voornaam,
  3. Workshop.workshop_naam
  4. FROM inschrijvingen
  5. INNER JOIN Aanmelder ON Aanmelder.id_aanmelder = inschrijvingen.id_inschrijving
  6. INNER JOIN Workshop ON Workshop.id_workshop = inschrijvingen.id_workshop


Zoiets moet je gaan zoeken
Offline ranco - 22/01/2009 16:08
Avatar van ranco PHP gevorderde De manier zoals jij aanhaalt is mogelijk, maar het zou een stuk makkelijker worden als je vanuit workshops mag beginnen.
Immers,je kunt iedere workshop langs gaan, en vanuit hier de aanmelder vinden.

Maar een aanmelder kan bij meerdere workshops zijn aangesloten, dit zul je op een wat gecompliceerdere manier moeten lossen (2 query's bijvoorbeeld)

Dit lukt volgens mij niet in 1 query met joins.

Dus: Mag je ook het overzicht laten zien vanuit workshops?
Offline marten - 22/01/2009 16:12
Avatar van marten Beheerder Doe het dan met een group concat. Dan krijg je je resultaten komma gescheiden die je met PHP.net: explode van elkaar kan scheiden.

  1. SELECT
  2. aanmelder.aanmelder_naam,
  3. GROUP_CONCAT(workshops.workshop_naam ORDER BY workshops.workshop_naam ASC SEPARATOR ',') AS workshop_list
  4. FROM
  5. inschrijvingen
  6. INNER JOIN aanmelder ON inschrijvingen.id_aanmelder = aanmelder.id_aanmelder
  7. INNER JOIN workshops ON workshops.id_workshop = inschrijvingen.id_workshop
  8. GROUP BY aanmelder.aanmelder_naam


Kan zijn dat er andere kolomnamen gebruikt zijn omdat ik even snel een voorbeeld heb gemaakt.
Offline Jurgo - 26/01/2009 14:25
Avatar van Jurgo PHP interesse Bedankt allemaal!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.166s