Internet-basierte Fragebögen II

Timo Gnambs

http://timo.gnambs.at

Inhalt

Sprachen im Überblick

Sprache Client- / Serverseitig Beschreibung
HTML clientseitig Logische Textauszeichnung
CSS clientseitig Layoutierung des Dokuments
JavaScript clientseitig Eingabevalidierung
PHP serverseitig Eingabevalidierung, Datenspeicherung
Mysql serverseitig Datenspeicherung & -abruf

Server

Die Datenbank (Mysql)

Erste Schritte in Mysql (a)

  1. Neue Tabelle anlegen
  2. Variable uid definieren mit
    • Type = INT
    • Length = 11
    • Extra = auto_increment
    • Radiobutton Primary aktivieren

Erste Schritte in Mysql (b)

  1. Variable page definieren mit
    • Type = INT
    • Length = 11
  2. Alle übrigen Variablen des Fragebögens definieren.
    Die Namen in Mysql sollten jenen entsprechen, die in HTML in den name-Attributen verwendet wurden.

-> Weiterführende Informationen (PDF)

Mysql Feldtypen

Die wichtigesten Feldtypen in Mysql:

Typ Bedeutung
INT eine Zahl (mit bis zu 11 Ziffern)
VARCHAR ein Text (mit bis zu 255 Zeichen)
TEXT ein Text (mit bis zu über 65.000 Zeichen)
TIMESTAMP das aktuelle Datum

In den meisten Fällen sollte VARCHAR verwendet werden.

Weitere Mysql Angaben

Art Bedeutung Empfohlene Einstellung
Feld der Name des Feldes sollte mit dem name-Attribut in HTML übereinstimmen
Länge Anzahl der Stellen, die in diesem Feld gespeichert werden sollen. Bei INT: 11
Bei VARCHAR: 255
NULL Sind leere Werte erlaubt null

In den meisten Fällen sollte VARCHAR verwendet werden.

PHP

Grundlagen (a)

Vergleichsoperatoren

Operator Bedeutung
== ist gleich
!= ist ungleich
< ist kleiner
> ist grösser
<= bzw. >= ist kleiner bzw. grösser gleich

Grundlagen (b)

PHP & Mysql (a)

<?php
    /* Verbindung zur Datenbank herstellen */
    $db = mysql_connect("localhost", " [USERNAME] ", 
                        " [PASSWORT] ")
        or die ("Fehler: Konnte mich nicht mit der 
                        Datenbank verbinden!");
    
    /* Eine Tabelle aus der Datenbank wählen */
    mysql_select_db(" [TABELLE] ", $db);
    
    ... verschiedene Anweisungen ...
    
    /* Verbindung zur Datenbank trennen */
    mysql_close($db); 				
?>

PHP & Mysql (b)

<?php
    
    /* User-ID generieren (nur auf der ersten Seite) */
    $sql = "INSERT INTO [TABELLE] (page) VALUES('0')";
    $result = mysql_query($sql, $db);

    $uid = mysql_insert_id($db);			

?>

User-IDs weitergeben

Bei mehrseitigen Fragebögen wird dier User-ID auf der ersten Seite generiert und dann über ein verstecktes Formularfeld weitergegeben.


<input type="hidden" name="uid" 
    value="<?php print $uid; ?>" />

PHP & Mysql (c)

<?php
    
    /* Daten von vorheriger Seite speichern 
        (z.B. für Variable 'age') */
    $uid = strip_tags($_POST['uid']);
    $page = strip_tags($_POST['page']);
    $age = strip_tags($_POST['age']);
    
    $sql = "UPDATE [TABELLE] 
                    SET age = '$age', page = '$page'
                    WHERE uid = '$uid'";
                
    $result = mysql_query($sql, $db);

    /* Aktuelle Seite berechnen */
    $page = $page + 1;
?>

Ablaufschema

  1. Fragebogen formulieren.
  2. Datenbank erstellen.
  3. Graphisches Design überlegen.
  4. Fragebogen in HTML umsetzen und mittels CSS Design realisieren.
  5. PHP Code zur Speicherung der Daten hinzufügen.
  6. Ausführliche Funktionstests.

Literatur

Alle Dateien

Copyright