KonGa
Neuer Benutzer
- Beiträge
- 4
Hallo zusammen,
ich bekomme über ein Formular in WordPress Daten in eine Datenbank geschrieben aus einer Umfrage. Nun sind die Daten in ein Format welches ich nicht zum Auswerten nutzen kann und möchte die Daten transponiert in einem View darstellen. Bisher sieht die Tabelle so aus:
|submit_time|form_name|field_name|field_value|field_order|
field_name enthält die Bezeichnung für jedes Formularfeld. field_value den entsprechenden Wert. Nun möchte ich für jedes Formularfeld eine Spalte haben.
Ich hab verschiedene Ideen gefunden aber keine Funktioniert und ich weiß nicht warum:
SELECT`submit_time` AS `Submitted`
GROUP_CONCAT(CASE WHEN `field_name` = 'your-name' THEN `field_value` END) AS `name`,
GROUP_CONCAT(CASE WHEN `field_name` = 'your-company' THEN `field_value` END) AS `company`,
FROM `table`
WHERE `form_name` = "Formularname"
GROUP BY `submit_time`
geht nicht, anscheinend kennt das PHPMyAdmin das GROUP_CONCAT nicht, wird auch nicht farblich hervorgehoben im Editor. Ohne die beiden Zeilen funktioniert die Abfrage, allerdings wird dann eben nur die submit_time ausgegeben.
ODER:
SELECT`submit_time` AS `Submitted`
MAX(CASE WHEN `field_name` = 'your-name' THEN `field_value` END) AS name,
MAX(CASE WHEN `field_name` = 'your-company' THEN `field_value` END) AS company,
FROM `table`
WHERE `form_name` = "DRI"
GROUP BY `submit_time`
das wurde auch in einem Forum vorgeschlagen, wobei ich nicht verstehe welche Funktion das MAX() hier überhaupt habe soll.
Habe es auchmal mit IF statt CASE versucht, ohne Erfolg. Also ich weiß der Fehler liegt in der Aggregation der Daten, aber ich weiß nicht wie ich das machen soll. Kann mir da jemand helfen?
Ziel ist eben:
|submit_time|name|company|industry|frage1|frage2|frage3|.....|frageXX
Ich will die Daten danach exportieren um sie forerstmal in Excel auszuwerten. In Zukunft, soll die Auswertung dann auf dem Server passieren, dafür würde ich aber zu lange brauchen mit meinen minimalen PHP skills ;P
Vielleicht wäre es auch besser die Daten so zu lassen wie sie sind und direkt irgendwie zu verwerten, aber mir scheint das transponiert einfach eine bessere Darstellung und Lösung, was meint Ihr?
Vielen Dank im Vorraus!
Konstatin
ich bekomme über ein Formular in WordPress Daten in eine Datenbank geschrieben aus einer Umfrage. Nun sind die Daten in ein Format welches ich nicht zum Auswerten nutzen kann und möchte die Daten transponiert in einem View darstellen. Bisher sieht die Tabelle so aus:
|submit_time|form_name|field_name|field_value|field_order|
field_name enthält die Bezeichnung für jedes Formularfeld. field_value den entsprechenden Wert. Nun möchte ich für jedes Formularfeld eine Spalte haben.
Ich hab verschiedene Ideen gefunden aber keine Funktioniert und ich weiß nicht warum:
SELECT`submit_time` AS `Submitted`
GROUP_CONCAT(CASE WHEN `field_name` = 'your-name' THEN `field_value` END) AS `name`,
GROUP_CONCAT(CASE WHEN `field_name` = 'your-company' THEN `field_value` END) AS `company`,
FROM `table`
WHERE `form_name` = "Formularname"
GROUP BY `submit_time`
geht nicht, anscheinend kennt das PHPMyAdmin das GROUP_CONCAT nicht, wird auch nicht farblich hervorgehoben im Editor. Ohne die beiden Zeilen funktioniert die Abfrage, allerdings wird dann eben nur die submit_time ausgegeben.
ODER:
SELECT`submit_time` AS `Submitted`
MAX(CASE WHEN `field_name` = 'your-name' THEN `field_value` END) AS name,
MAX(CASE WHEN `field_name` = 'your-company' THEN `field_value` END) AS company,
FROM `table`
WHERE `form_name` = "DRI"
GROUP BY `submit_time`
das wurde auch in einem Forum vorgeschlagen, wobei ich nicht verstehe welche Funktion das MAX() hier überhaupt habe soll.
Habe es auchmal mit IF statt CASE versucht, ohne Erfolg. Also ich weiß der Fehler liegt in der Aggregation der Daten, aber ich weiß nicht wie ich das machen soll. Kann mir da jemand helfen?
Ziel ist eben:
|submit_time|name|company|industry|frage1|frage2|frage3|.....|frageXX
Ich will die Daten danach exportieren um sie forerstmal in Excel auszuwerten. In Zukunft, soll die Auswertung dann auf dem Server passieren, dafür würde ich aber zu lange brauchen mit meinen minimalen PHP skills ;P
Vielleicht wäre es auch besser die Daten so zu lassen wie sie sind und direkt irgendwie zu verwerten, aber mir scheint das transponiert einfach eine bessere Darstellung und Lösung, was meint Ihr?
Vielen Dank im Vorraus!
Konstatin