PHP MySQL (Internet)

PHP MySQL (Internet)

Hallo

Ich möchte eine Kundenumfrage auf eine einfache Art und Weise realisieren. Die Umfrage besteht aus ca. 10 Themen mit je 5 möglichen Antworten. Die Antworten sollen aber nicht mit "radio" Button sondern mit einer "Checkbox" ausgewählt werden. So das dann mehr Antworten pro Thema möglich sind.

Aber wie bringe ich nun die Ergebnisse in meine MySQL Datenbank? Wie müssen die Einstellungen in der DB aussehen.

Können Sie mir da ein paar Tips geben.

Besten Dank
Am besten trägst du die Daten aus einem Checkbox-Berreich (mehrere Checkboxen mit gleichem Name, aber unterschiedlichen Werten) in eine Spalte.

für "Thema 1" -> Spalte: "Thema1"
für "Thema 2" -> Spalte: "Thema2"
für "Thema 3" -> Spalte: "Thema3"
usw...

Jetzt hast Du quasi 10 Spalten für deine 10 Themen in der Datenbank.

Die Daten aus dem Formular übernimmst du dann wie folgt:

Bsp: Thema 1

<INPUT TYPE="checkbox" NAME="thema1[]" VALUE="ich mag Thema 1">
<INPUT TYPE="checkbox" NAME="thema1[]" VALUE="ich hasse Thema 1">
<INPUT TYPE="checkbox" NAME="thema1[]" VALUE="blabla">
usw...

Bei dem Versenden des Formulares werden die NAME-Werte erkannt und als Variablen deklariert, die im Ziel-Skript verfügbar sind. Die Besonderheit bei meinem Beispiel besteht darin, dass der Wert von "NAME" ein "[]" am Ende besitzt. Dadurch wird bei der Parameterübergabe automatisch ein Array - in diesem Beispiel $thema1 - erstellt.

Beispiel:
$thema[1] hätte den Wert "ich hasse Thema 1"
oder
$thema[2] den Wert "blabla"

Jetzt kannst Du das Array mit implode() zusammenfügen und auf einer Variable speichern. Dabei darfst du jedoch nicht vergessen ein markantes Trennzeichen einzufügen, damit du die Werte bei einer späteren Abfrage wieder aufdröseln kannst.

zB. $thema1_new = implode("@@@", $thema1);

$thema1_new kannst Du jetzt in Deiner Datenbank in der Spalte Thema1 speichern.

Der Datensatz würde dann so aussehen:
ich mag Thema 1@@@ich hasse Thema 1@@@blabla

@@@ ist das Trennzeichen, dass du bei explode() wieder angeben musst, um dein Array korrekt zu füllen.

Ich hoffe, dass meine Beschreibung einigermaßen verständlich ist ;o)
Logge dich ein um einen Beitrag zu schreiben.