Mysql rows naar columns

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick S

patrick S

01/10/2013 00:50:48
Quote Anchor link
Hallo,

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
 
PHP hulp

PHP hulp

23/12/2024 08:15:21
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/10/2013 01:59:21
Quote Anchor link
kolommen wijzigen/aanmaken wanneer de database in gebruik is is een slecht plan.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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


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)
PHP script in nieuw venster Selecteer het PHP script
1
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


daarnaast een tabel 'formfield_data' aanmaken waarin één record wordt toegevoegd per formulierVELD:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 01/10/2013 02:04:49 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.