Formularverarbeitung - wie am besten?

Muckel1986

Erfahrenes Mitglied
Guten Tag zusammen,

da ich chronisch Krank bin, muss ich meine Schmerzen und Medikamente dokumentieren. Da mich ich jeder Zeit darauf Zugriff habe, möchte ich mir dazu gerne ein online System machen. Den Anfang kann man hier sehen.

Nun habe ich noch eine Frage...und zwar möchte ich bei dem Punkt Schmerzen nur Zahlenwerte haben (0 bis 10). Welches Formular Element eignet sich dafür am besten?

Ziel ist es auch, dass wenn die Eingaben für den aktuellen Tag gemacht sind, dass ich dann eine Tabelle habe, in der untereinander die Werte sind, so dass ich sie unter anderem auch editieren kann.

Der Höchst-, Tiefst- und Mittelwert soll automatisch berechnet werden. Zum Abschluss soll dann noch ein Diagramm erstellt werden.

Denn ich möchte später eine Möglichkeit habe, in der ich mir ein Datum auswähle und ich dann alle Informationen habe (Schmerzen, Medikamente und das allgemeine Befinden).

Alternativ soll es eine Liste aller Medikamente geben (einfache Tabelle zum auslesen) und eine Liste der Schmerzen - auch eine Tabelle.

Ich denke ich werde dafür eine mysql Datenbank nutzen. Als Tabellen/Felder denke ich da anfolgendes:

schmerzen
-datum
-morgens
-mittags
-abends
-tiefst
-mittel
-hoechst

medikamente
-datum
-angesetzt
-medikament
-morgens
-mittags
-abends
-nachts
-abgesetzt

befinden
-datum
-beschreibung

Was ich gezielt nun gerne wissen würde wäre, wie ich die Formular verarbeitung am besten mache und welche Eigenschaften die MySqlDB bzw. deren Tabellen/Felder haben sollte.

Habt ihr da ggf. gute Links/Tutorials?

Gruß und vielen Dank
Muckel
 
Für die "Punkteverteilung" würde ich persönlich eine Drop-Down-Leiste benutzen, so wird nur 1-10 zugelassen (durch Voreinstellung) und es ist einfach und schnell eingetragen

WEnn man es ganz schön will, das ganze mit OnChange (Js) und Ajax direkt abspeichern.
 
Stimmt, das ist 'ne gute Idee. Das Werde ich so ändern. Doch dann bleibt immer noch das Problem, dass ich zurzeit nicht weiß, welches charset ich für die DB nutzen sollte und wie ich die Sache richtig angehe.

Vielen Dank
Muckel
 
Guten Morgen,

bin gerade dabei, mir die Datenbank anzulegen, mit der ich arbeiten möchte. Dabei habe ich mir dieses Tutorial angeschaut.

Da wird ja auch beschrieben, wie ich eine Datenbank per php installieren kann. Nur wie ist das mit Feldern, in denen nur die Ziffern 0 bis 10 stehen sollen, die aus einem select Feld kommen? Welche Eigenschaft sollte ich diesem Feld geben? Habt ihr eine Idee, wo ich Informationen finden kann, wo diese Eigenschaften aufgelistet sind?

Gruß und einen schönen Sonntag
Muckel

Edit: Mein Versuch schaut so aus:
PHP:
<?php 
$link = mysql_connect('localhost', 'user', 'passwort') or die(mysql_error());

mysql_query('CREATE TABLE schmerz (
                 schmerzen_id INT UNSIGNED AUTO_INCREMENT ,
                 datum VARCHAR(100) ,
                 morgens VARCHAR(100) ,
                 mittags VARCHAR(100) ,
                 abends VARCHAR(100) ,
				 tiefst VARCHAR(100) ,
				 mittel VARCHAR(100) ,
				 hoechst VARCHAR(100) ,
                 PRIMARY KEY (schmerz_id)
               )
            ') or die(mysql_error());

mysql_query('CREATE TABLE medikamente (
                 medi_id INT UNSIGNED AUTO_INCREMENT ,
                 datum VARCHAR(100) ,
                 angesetzt VARCHAR(100) ,
                 medikament VARCHAR(100) ,
                 morgens VARCHAR(100) ,
				 mittags VARCHAR(100) ,
				 abends VARCHAR(100) ,
				 nachts VARCHAR(100) ,
				 abgesetzt VARCHAR(100) ,
                 PRIMARY KEY (medi_id)
               )
            ') or die(mysql_error());

mysql_query('CREATE TABLE allgemein (
                 befinden_id INT UNSIGNED AUTO_INCREMENT ,
                 datum VARCHAR(100) ,
                 beschreibung VARCHAR(100) ,
                 PRIMARY KEY (befinden_id)
               )
            ') or die(mysql_error());

?>

Das Problem ist wie gesagt noch die "Eigenschaften" der Zellen und ich weiß nicht, wie ich das jetzt wirklich mit meinem Formular verarbeiten kann.
 
Zuletzt bearbeitet:
Vielen Dank Loomes, werde ich gleich ausprobieren.

Haben eben über den Quellcode versucht die Tabellen zu erstellen und habe folgende Meldung als Ausgabe bekommen:
No database selected
.

Wie kann/muss ich es denn machen, die Datenbank doku davor noch zu erstellen? Habe es in dem Tutorial nicht gefunden und auch im wikibooks nicht.

Vielen Dank!
Muckel

Edit: Habe es über den phpMyAdmin raus bekommen:
PHP:
CREATE DATABASE `Doku` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
 
Zuletzt bearbeitet:
Die Fehlermeldung spricht doch für sich oder? In dem von die verlinkten Tutorial steht folgender Satz:
Bei vielen Providern liegen auf einem Datenbank-Server meist mehrere Datenbanken. Wir müssen also jetzt erst einmal "unsere" Datenbank auswählen. Das geht mit dem Befehl mysql_select_db("Datenbankname");
Dies hast du vielleicht übersehen?
 
Tut mir leid, dass ich nochmal nerven muss :( aber mein englisch ist leider nicht das beste und das hilft bei der Suche nach Lösungen dann nicht gerade weiter.

Habe für die Werte, in denen nur Zahlen hinein sollen INT gewählt und für das textarea TEXT, damit man da auch längere Beschreibungen speichern kann. Doch ich habe auch noch Werte, in denen ein Datum hinein soll. Gibt es dafür auch eine Eigenschaft?

Gruß und vielen Dank
Muckel
 
Guten Morgen,

danke, werde TIMESTAMP dafür benutzen. Das anlegen der Datenbank funktioniert nun. Doch bei den Tabellen bekomme ich folgenden Fehler:
Key column 'schmerz_id' doesn't exist in table

Diesen Verstehe ich nicht ganz, da ich ja die Zelle schmerz_id erstellen will:
PHP:
<?php 
$link = mysql_connect('localhost', 'user', 'passwort') or die(mysql_error());

mysql_query('CREATE DATABASE `Doku` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;') or die(mysql_error());

mysql_select_db("Doku");

mysql_query('CREATE TABLE schmerz (
                 schmerzen_id INT UNSIGNED AUTO_INCREMENT ,
                 datum TIMESTAMP,
                 morgens INT,
                 mittags INT,
                 abends INT,
				 tiefst INT,
				 mittel INT,
				 hoechst INT,
                 PRIMARY KEY (schmerz_id)
               )
            ') or die(mysql_error());

mysql_query('CREATE TABLE medikamente (
                 medi_id INT UNSIGNED AUTO_INCREMENT ,
                 datum TIMESTAMP,
                 angesetzt TIMESTAMP,
                 medikament TEXT ,
                 morgens TEXT,
				 mittags TEXT,
				 abends TEXT,
				 nachts TEXT,
				 abgesetzt TIMESTAMP,
                 PRIMARY KEY (medi_id)
               )
            ') or die(mysql_error());

mysql_query('CREATE TABLE allgemein (
                 befinden_id INT UNSIGNED AUTO_INCREMENT ,
                 datum TIMESTAMP,
                 beschreibung TEXT,
                 PRIMARY KEY (befinden_id)
               )
            ') or die(mysql_error());

?>

hm...aller Anfang ist irgendwie schwer...

Danke euch für eure Hilfe!
Lieben Gruß
Muckel
 

Neue Beiträge

Zurück