VSIS: Arbeitsgruppe Verteilte Systeme und Informationssysteme prInt: Das Praktikum Internet-Werkzeuge  Praktikum Internet-Werkzeuge   Fachbereich
  Aufgaben  Dokus  Links   Universität Hamburg

 Aufgabe 5: PHP und MySQL

Um das schwarze Brett funktionsfähig zu machen, fehlt noch die Datenbankanbindung. Mit den heute gelernten Techniken soll diese jetzt realisiert werden.

Auf dem MySQL-Server sind folgende Tabellen eingerichtet, die von allen Gruppen gemeinsam benutzt werden:

Tabelle: anzeigen
FieldTypeKeyDefaultExtra
idint(11)PRI0auto_increment
gruppechar(2) NULL
vorname varchar(100)   
nachname varchar(100)   
emailvarchar(100)   
titelvarchar(255)   
texttext NULL 
typint(11) 0 
kategorieint(11) 0 
preisdecimal(11,2) NULL 
datumdatetime 0000-00-00 00:00:00 
extrablob NULL 
bildvarchar(100) NULL 
Die Anzeigentypen könnten z.B. wie folgt definiert werden:
  1: biete
  2: suche
  3: tausche

Tabelle: kategorie
FieldTypeKeyDefaultExtra
idint(11)PRI0auto_increment
bezeichnungchar(30)   
gruppechar(2) NULL 

Um auf die Datenbank zuzugreifen, verwendet als Usernamen "print" und als Passwort "trimp". Der Datenbankserver ist vom Webserver aus über "localhost" erreichbar. Die Datenbank heißt "printwww" und enthält die beiden obigen Tabellen.

In beiden Tabellen ist die Spalte id der Primärschlüssel, muss also einen eindeutigen Wert enthalten. Darum braucht Ihr Euch jedoch nicht weiter zu kümmern, übergebt für diese Spalte einfach den Wert 0 (Null). MySQL wählt dann für Euch einen eindeutigen Index. Das Feld datum in der Anzeigen-Tabelle soll den Zeitpunkt des Abspeicherns enthalten. Verwendet dazu die SQL-Funktion now() wie folgt:
   INSERT INTO anzeigen VALUES (0,....,now())

Zunächst kann man den Inhalt der Tabelle "Kategorie" mit folgendem Tool anschauen. Schreibt dann Euer Eingabe-Formular so um, dass es die Kategorien für einen Artikel aus der Tabelle "Kategorie" in ein SELECT - Formularfeld liest. Verwendet als VALUE-Attribut den Wert des Feldes ID und zeigt in der Auswahlliste den Wert von bezeichnung an: <OPTION VALUE='1'>Kategorie</OPTION>

Daten in die Datenbank einfügen.
Schreibt eine Seite, die einen neuen Artikel in die Datenbank einfügt, nachdem die Daten überprüft wurden.

Daten in der Datenbank suchen.
Modifiziert die 'Suche'-Seite so, dass die Suche (nach bestimmten Kriterien) in der Datenbank ausgeführt wird. Außerdem modifiziert die Ergebnisseite, so dass dort die Datenbank-Ergebnisse dargestellt werden.

Hinter jedem angezeigten Artikel soll ein Link liegen, über den ein Benutzer sich den Text des Artikels ansehen kann. Erstellt eine Seite, die die ID eines Artikels übergeben bekommt und dann alle verfügbaren Informationen zu diesem Artikel ausgibt.

Tabellen anschauen:

 Bonusaufgaben

  • Ihr habt Euch sicher schon gefragt, was die Spalte gruppe in der Tabelle kategorie zu bedeuten hat. Je nach Thema des schwarzen Bretts passen die vorgegebenen Kategorien nicht besonders gut. Wir haben daher einen Kategorien-Editor erstellt, mit dem Ihr eigene Kategorien in die Tabelle eintragen könnt. In der Spalte gruppe wird dann Eure Gruppennummer gespeichert. So könnt Ihr dafür sorgen, dass Ihr nur Eure eigenen Kategorien anzeigt. (1 Punkt)
  • In den Bonusaufgaben zum 2. und 4. Termin solltet Ihr die Funktionalität erstellen, ein Bild mittels Requester auszuwählen und als Datei auf dem Server zu speichern. Jetzt könnt Ihr die Adresse des Bilds in der Datenbank abspeichern, um bei der Darstellung eines Artikels das zugehörige Bild anzuzeigen. (1 Punkt)
  • Stellt Euren Counter so um, dass er statt auf einer Datei auf der DB arbeitet. Wir haben dazu folgende Tabelle angelegt:

    Tabelle: counter
    FieldTypeKeyDefaultExtra
    idint(11)PRI0auto_increment
    gruppenidint(4) 0 
    countint(11) 0 

Dokus
SQL-Dokus
DB-Zugriff mit PHP3 am Beispiel von MySQL
MySQL-Funktionen
  

Viel Spaß!


Mi 12-16 Uhr Raum: B-201 und RZ Start: 05.04.2006
Eine Veranstaltung des Arbeitsbereichs Verteilte Systeme und Informationssysteme (VSIS)

Letzte Änderung : 02.05.2006 - 15:32
EMail: prInt06@vsis.informatik.uni-hamburg.de