Mysql rows naar columns
Ik wil graag formulieren genereren vanuit de database.
Ik heb een tabel met de een aantal vaste verplichte velden en een tabel form_fields met velden die aangemaakt kunnen worden.
Is het ook mogelijk om de rijen van een andere tabel als kolommen weer te geven en daar rijen uit form_values daaraan te kopellen??
Voorbeeld tabel met vaste velden.
Tabel: Forms
id | form_id | create_date | create_by
------------------------------------------------------
1 | 1 | 1-10-2013 | gebruiker_id
Door de gebruiker aangemaakte velden
Tabel: Form_fields
id | form_id | field_name |
------------------------------------
1 | 1 | brand |
De ingevulde formulieren
Tabel: form_values
form_id | field_id | field_name |
------------------------------------
1 | 1 | brand |
Heeft iemand een idee hoe ik dit kan doen?
Alvast heel erg bedankt..
Mvg, Patrick
tabellen samenvoegen in een query kan wel.
Ik probeer je probleem te 'vertalen':
1. eigenlijk heb je twee tabellen om de formulieren te genereren in de browser.
2. Daarnaast wil je een mogelijkheid om de data op te slaan die men invult in de formulieren.
antwoorden:
1. Maak van die twee tabellen één met een extra kolom 'mandatory' (ja/nee)
Code (php)
1
2
3
4
5
6
2
3
4
5
6
tabel formfields:
- formfield_id <-- dit is gewoon een unieke code (primary key, auto increment)
- form_id <-- bij welk formulier hoort dit formulierveld?
- mandatory <-- yes/no (is dit een verplicht veld?)
- create_date <-- datum en tijd waarop het formulierveld is toegevoegd
- create_by <-- gebruiker die het formulierveld heeft toegevoegd
- formfield_id <-- dit is gewoon een unieke code (primary key, auto increment)
- form_id <-- bij welk formulier hoort dit formulierveld?
- mandatory <-- yes/no (is dit een verplicht veld?)
- create_date <-- datum en tijd waarop het formulierveld is toegevoegd
- create_by <-- gebruiker die het formulierveld heeft toegevoegd
2. het probleem dat ontstaat is dat je niet weet hoeveel formuliervelden er zijn omdat de formulieren uitgebreid kunnen worden. Hierdoor wordt een compleet formulier opslaan in één record onmogelijk. (10 miljoen verschillende kolommen willen we niet).
de oplossing:
een tabel 'form_data' aanmaken waarin één record wordt toegevoegd als een formulier is verzonden:
Code (php)
1
2
3
4
2
3
4
tabel form_data:
- form_data_id <-- dit is gewoon een unieke code (primary key, auto increment)
- form_id <-- vertelt ons bij welk formulier deze data hoort
- created <-- datum en tijd waarop het formulier is verzonden
- form_data_id <-- dit is gewoon een unieke code (primary key, auto increment)
- form_id <-- vertelt ons bij welk formulier deze data hoort
- created <-- datum en tijd waarop het formulier is verzonden
daarnaast een tabel 'formfield_data' aanmaken waarin één record wordt toegevoegd per formulierVELD:
Code (php)
1
2
3
2
3
tabel formfield_data:
- form_data_id <-- vertelt ons bij welk formulierdata deze inhoud hoort
- formfield_id <-- vertelt ons bij welk formulierVELD deze inhoud hoort
- form_data_id <-- vertelt ons bij welk formulierdata deze inhoud hoort
- formfield_id <-- vertelt ons bij welk formulierVELD deze inhoud hoort
Gewijzigd op 01/10/2013 02:04:49 door Frank Nietbelangrijk