Einführung HTML

Werbung
AMP
Apache
MySQL
PHP
HTML
Einführung MySQL mit PHP
Materialien zur Fortbildungsreihe C für die Informatik in SII
Einführung MySQL
20.04.04
Thomas Schaller
AMP
Apache
MySQL
PHP
Einführung MySQL mit PHP
Sie können bisher...
MySQL
• Datenbanken mit SQL verwalten
• dynamische Web-Seiten mit PHP erstellen
Sie lernen nun ...
• dynamische Web-Seiten mit den Daten einer
Datenbank zu erstellen
• Datenbanken mit Hilfe von Web-Seiten zu
verwalten
Web
browser
HTTP
Web
server
Parameter
HTML
PHP
SQL
MySQL
2
AMP
Apache
MySQL
PHP
MySQL
Grundstruktur einer SQL-Anfrage
Grundprinzip:
• Verbindung zur Datenbank aufbauen
• SQL-Anfrage durchführen
• Ausgabe der Ergebnisse in einer Tabelle
Verbindung zur
Datenbank
In Phase5:
SQL-Anfrage
Dynamische
Tabelle
3
Verbindung zur Datenbank
AMP
Apache
MySQL
PHP
MySQL
1.) Verbindung zum MySQL-Server
mit IP-Adresse, Username und Passwort
2.) Auswahl der Datenbank
mit Name der Datenbank
Bei einem Fehler: or die(mysql_error())
• Abbruch des Ladens der Seite
• Ausgabe einer Standard-SQL-Fehlermeldung
Bei Zugriffen auf $conn wird nun automatisch die richtige
Datenbank benutzt.
4
AMP
Apache
MySQL
PHP
MySQL
SQL - Anfrage
1.) SQL-Anfrage in String speichern
z.B. SELECT, INSERT oder UPDATE
2.) Anfrage durchführen
das Ergebnis ist ein zweidimensionales Array
Identifikation der Datenbank über die Verbindung ($conn).
Ergebnisarray belegt evt. sehr viel Speicherplatz und muss daher
mit mysql_free_result($result) wieder freigegeben werden.
5
Ausgabe einer dynamischen Tabelle
AMP
Apache
MySQL
PHP
MySQL
1.) Normaler Table-Tag
2.) Die Zeilen werden dynamisch erzeugt
mysql_fetch_array liefert eine Zeile des Ergebnis-Arrays
while-Schleife sorgt für wiederholte Ausführung
3. ) Mit $line[„Feldname“] Zugriff auf einzelne Felder
Achtung: Groß-/Kleinschreibung entscheidend!!
Übung
6
Insert / Update - Operationen
AMP
Apache
MySQL
PHP
MySQL
1.) HTML-Seite mit Formular
Daten werden abgefragt
2.) PHP-Seite mit Zugriff auf die Datenbank
Insert / Update-Operation wird durchgeführt
Ein Datenbankzugriff kann nur beim Aufruf einer
neuen Seite durchgeführt werden, da php-Skripte und
Datenbankzugriffe serverseitig ausgeführt werden.
Web
browser
HTTP
Web
server
Parameter
HTML
PHP
SQL
MySQL
7
AMP
Apache
MySQL
PHP
MySQL
8
Insert / Update - Operationen
AMP
Tricks
Apache
MySQL
PHP
MySQL
1.) Cachen verhindern
Dynamische Seiten dürfen nicht im Cache gespeichert werden
=> Ablaufzeit auf 0s festlegen
2.) Input-Felder vom Typ Hidden
Daten können zum nächsten php-Dokument übergeben werden
9
AMP
Weitere Auswertungsmöglichkeiten
Apache
MySQL
PHP
MySQL
1.) Anzahl der Ergebniszeilen
2.) ID eines neuen Datensatzes
bei automatisch nummerierten Schlüsselfeldern
10
AMP
Apache
MySQL
PHP
MySQL
Übungen
1.) Dynamische Tabelle
Erstellen Sie ein php-Dokument, das alle
angemeldeten Schüler mit Namen, Vornamen und
Klasse anzeigt.
2.) Insert - Operation
Erstellen Sie eine HTML-Seite mit Formular, in das
die Daten eines neuen Schülers eingegeben werden
können, und eine php-Seite, die diese Daten dann
in die Datenbank aufnimmt.
3.) Bonusaufgaben
- Kontrollieren Sie, ob die eingegebene Klasse
existiert, bevor Sie einen Schüler aufnehmen.
- Erstellen Sie ein php-Dokument, das alle
verfügbaren Postkarten incl. Bild darstellt.
11
AMP
Apache
MySQL
PHP
MySQL
Mails aus php-Skripten
SMTP-Server muss in php.ini eingetragen werden
SMTP-Server darf keine Authentifizierung verlangen
2x ändern
12
AMP
Apache
MySQL
PHP
MySQL
Mails aus php-Skripten
Verwendung von PHP-Mailer
Hiermit ist eine Authentifizierung möglich
Es werden einige Variablen nach Wunsch initialisiert:
$mail->IsSMTP();
setzt Mailer SMTP zu verwenden
$mail->Host
= "smtp.mailserver.de"; spezifiziert den Server
$mail->SMTPAuth = true;
SMTP-Authentifizierung einschalten
$mail->Username = "nutzername"; SMTP Login-Name
$mail->Password = "secret";
SMTP Passwort
$mail->From
= "[email protected]";
Absender-Adresse
$mail->FromName = "Absender ausführlich";
$mail->AddAddress("[email protected]");
$mail->WordWrap = 50;
$mail->IsHTML(false);
$mail->Subject = $betreff;
$mail->Body
= $mailtext;
13
hinzufügen einer Empfänger-Adresse
setzt Zeilenumbruch auf 50 Zeichen
setzt eMail-Format auf kein-HTML
eMail-Betreff
eMail-Text
AMP
Apache
MySQL
PHP
MySQL
Mails aus php-Skripten
Verwendung von PHP-Mailer
Der eigentliche Versand erfolgt mit der sendMethode, welche eine Überprüfung ermöglicht:
if(!$mail->Send()) {
echo "Message could not be sent.<br>";
echo "Mailer Error: ".$mail->ErrorInfo;
exit;
}
echo "<i>Message has been sent.</i><br><br>";
14
Herunterladen