Apache - PHP - MySQL Apache-PHP-MySQL.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Apache - PHP - MySQL Apache-PHP-MySQL.
Forschungszentrum caesar
Zusammenfassung der Vorwoche
10. Grundlagen imperativer Programmiersprachen
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Dynamische Datentypen
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Java- Syntax.
Robotik mit LEGO Mindstorms
Fakten, Regeln und Anfragen
Dynamische Webseiten mit PHP
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Das erste Programm (Folie 16)
DVG Ablaufsteuerung
Buch S73ff (Informatik I, Oldenbourg-Verlag)
Einführung in die Programmierung Datensammlung
Einführung MySQL mit PHP
Marcus Haller & René Schulze
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Einführung in die Programmiersprache C 1
Java programmieren mit JavaKara
Gegenstand EDV Thema: Informative Webseiten
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Übungsaufgaben für Microsoft Excel
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
Dynamische Webseiten mit PHP [und Python]
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
CGI (Common Gateway Interface)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
PHP Basic.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
PHP: Operatoren und Kontrollstrukturen
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Schleifen
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
(Syntax, Strings/Zahlen, Variablen, Arrays)
Delphi Chars und Strings
Variablen und Datentypen
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Unterschiedliche Kontrollstrukturen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Apache - PHP - MySQL Apache-PHP-MySQL

Client-Server-Prinzip Browser Ebene (Client) Web-Server Ebene Datenbank-Server Ebene Web- Server #1 Web- Server #2 Datenbank- Server Datenbank- Server Apache-PHP-MySQL

LAMP (WAMP, XAMPP) Systemarchitektur (xampp) Linux oder Windows oder MacOS als Betriebssystem Apache als Web Server MySQL als Datenbank-Server PHP als verbindende Skriptsprache (http://www.xampp.de --> Apachefriends) Apache-PHP-MySQL

Web Server - Apache Ein Web-Server beantwortet Anfragen, die durch Web-Clients an ihn gerichtet werden, d.h. er sendet die angeforderten Seiten zurück Apache Web Server sind mit 60 % Marktanteil das z.Z. marktbeherrschende Produkt (http://www.netcraft.com/survey) Apache ist Open Source (www.apache.org), d.h. Quelltext der Software liegt offen  Möglichkeit der Kontrolle der Software Apache-PHP-MySQL

Datenbank Server - MySQL MySQL ist ein relationales Datenbankmanagementsystem Einsatz vorrangig in kleinen und mittelgroßen Unternehmungen Kommunikation erfolgt über die Protokollfamilie TCP/IP Jedes Programm, welches TCP/IP und die SQL-Syntax versteht, kann mit MySQL kommunizieren (www.mysql.com) Apache-PHP-MySQL

PHP – Hypertext Preprocessor PHP ist eine serverseitig interpretierte, in HTML eingebundene Skriptsprache dient der Erstellung dynamischer Webseiten (reine HTML Seiten sind statisch) dynamische Web Seiten werden serverseitig, im Moment ihres clientseitigen Abrufs generiert ermöglicht somit Einbindung von Daten auf Basis von Nutzeraktionen z.B. Möglichkeit Formularinhalte auszuwerten und darauf zu reagieren Apache-PHP-MySQL

PHP - Funktionsweise PHP Code wird direkt in die HTML Seiten eingebunden Von HTML Seiten abweichende Dateiendung *.php Beispiel: Hello.php <html> <head><title>PHP Test</title></head> <body> <?php  echo  "Hello World<p>";  ?> </body> </html> Apache-PHP-MySQL

PHP Datenbankanbindung PHP stellt Verbindung zwischen einer verwendeten Datenbank und dem Web-Server her Einbindung von gespeichertem Datenmaterial in Internetseiten PHP agiert somit u.a. als MySQL-Client Apache-PHP-MySQL

PHP – Interpreter (Modul) Einbindung PHP als Apache-Modul Webseite in HTML: <html> <body> Hello world </body> </html> Browser (Client) Antwort Basis-Server Anfrage .php PHP – Interpreter (Modul) Webseite mit inte- griertem PHP-Code: <?php $str=„Hello world“; echo $str; ?> DB-Server (MySQL) Web-Server (Apache) Apache-PHP-MySQL

Beispielhafte DB Anbindung I <?php $conn = mysql_connect("localhost", "Benutzername",  "Passwort"); $res = mysql_query("SELECT * FROM anmeldungen", $conn); $header_printed = false; print "<TABLE>\n"; do {     $data = mysql_fetch_array($res);     // Retrieve the next row of data.     if (!is_array($data)) {         break;     } Apache-PHP-MySQL

Beispielhafte DB Anbindung II if (!$header_printed) {         print " <TR>";         reset($data);         while (list($name, $value) = each($data)) {             print "  <TH>$name</TH>\n"         }         print " </TR>\n";         $header_printed = true;     }     print " <TR>\n";     print "  <TD>";     print implode("</TD>\n  <TD>", $data);     print " </TR>\n"; } while ($data); print "</TABLE>\n"; ?> Apache-PHP-MySQL

Hinweise zur Übung Was ist zu beachten? Wie installiere ich Apache, MySQL, PHP? Übungen mit PHP Übungen mit PHP - Apache - MySQL Apache-PHP-MySQL

Zu PHP (1): PHP-Code kann überall in HTML-Code eingebettet werden. Um in den PHP-Modus zu wechseln wird die Zeichenfolge <?php verwendet. Zum Verlassen des PHP-Modus wird die Zeichenfolge ?> verwendet. Damit der Server weiß dass es sich um eine PHP-Datei handelt, die entsprechend PHP-Befehle enthalten, haben PHP-Dateien die Dateiendungen .php. <?php echo “Hallo, das ist eine PHP-Datei\n"; ?> (Quelle: für diese und folgende Folien zu PHP: Quakenet/#php Tutorial (gekürzt)) Apache-PHP-MySQL

Zu PHP (2): <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="de" lang="de">     <head> <title>PHP Test</title></head>     <body>         <?php         echo "<p>Dies ist ein PHP-Code</p>\n";         ?>     </body> </html> Text der sich außerhalb von PHP befindet (üblicherweise HTML-Code) wird als solches zum Client gesendet, ohne dass er vom PHP-Interpreter bearbeitet wird. Er kann aber auch durch PHP-Konstrukte wie Schleifen gesteuert werden. Apache-PHP-MySQL

Zu PHP (3): Strings ausgeben Hauptziel eines PHP-Skriptes ist es, unabhängig von der Logik die dahinter steckt, eine Ausgabe zu erzeugen. Um in einem PHP-Skript Texte auszugeben (ohne den PHP-Modus zu verlassen) wird üblicherweise der Sprachkonstrukt echo verwendet. Ein Beispiel könnte wie folgt aussehen. <?php echo  ‘auszugebender Text'; ?> Das Erste was auffällt ist die Tatsache dass die Klammern der Funktion fehlen. Das liegt daran dass echo keine Funktion sondern ein spezieller Sprachkonstrukt ist. Apache-PHP-MySQL

Zu PHP (4): HTML-Code bzw. die besonderen Zeichen < und > können in Strings ohne Probleme benutzt werden. Somit können am Ende des ersten Strings das HTML-Element <br/> Angefügt werden. <?php echo 'Ein Text, der ausgegeben wird<br/>'; echo 'Nun folgt ein anderer Text'; ?> Wie erwartet steht im Browser den folgenden Inhalt. Ein Text, der ausgegeben wird Nun folgt ein anderer Text Wenn der Quellcode im Browser betrachtet wird stehen beide Strings weiterhin hintereinander. Ein Text, der ausgegeben wird<br/>Nun folgt ein anderer Text Apache-PHP-MySQL

Zu PHP (5): Steuerzeichen in Strings Tabelle der Escape-Sequencen Zeichen Beschreibung \n Zeilenumbruch \r Wagenrücklauf, oft verwendet bei Netzwerkprotokollen. \t Tabulator \v Vertikaler Tabulator, eher selten verwendet \f Seitenvorschub, noch seltener verwendet \$ Dollarzeichen Ohne diese Sequenz wird versucht, eine Variable zu finden und dessen Inhalt einzufügen. Apache-PHP-MySQL

Zu PHP (6): Was sind Variablen? Üblicherweise dienen PHP-Skripte dazu, eine Ausgabe dynamisch zu erzeugen. Die PHP-Skripte selbst sind jedoch konstant, was deren Inhalt betrifft. Daher müssen wir im PHP-Skript etwas haben, was dynamisch gefüllt werden kann. Dafür gibt es Variablen. Sie werden vom Skript entsprechend mit Daten gefüllt und können dann an anderer Stelle im Skript verwendet werden. Aufbau von Variablen Damit Variablen in PHP als solche erkannt werden, müssen sie besonders gekennzeichnet werden. Daher beginnen alle Variablen in PHP mit dem Dollarzeichen $. Danach müssen sie mit einem Buchstaben oder Unterstrich _ beginnen. Nach dem ersten Zeichen können auch Ziffern im Variablennamen stehen. Apache-PHP-MySQL

Zu PHP (7): <?php $gueltig $10_nicht_gueltig ?> Variablen in PHP sind case-sensitiv, d.h. die Groß-/Kleinschreibung spielt eine Rolle und ist wichtig. Die Variable $foo ist eine andere als $FOO. Insbesondere bei den Superglobalen Variablen ist das wichtig, da diese z.B. $_GET lauten und nicht z.B. $_get. Apache-PHP-MySQL

Zu PHP (8): Zuweisungsoperator Um eine Variable mit einem Wert zu füllen, wird der Zuweisungsoperator = verwendet. Dabei muss die Variable links vom Gleichheitszeichen stehen, der Wert der gespeichert werden soll rechts. <?php $var = 'Inhalt'; $_auch_gültig = "anderer Inhalt"; $123 = "nicht gültig :("; $eine_variable = $andere_variable; ?> Ausgabe: <?php $email = ‚bv@example.com'; echo 'Meine Emailadresse ist: '; echo $email; ?> Apache-PHP-MySQL

Zu PHP (9): Verketten von Strings und Variablen Ein Operator von PHP ist der Verkettungsoperator, der als einzelner Punkt geschrieben wird (.). Dieser wird verwendet um zwei Ausdrücke miteinander zu verbinden. <?php 'Max'.'Mustermann'; // erzeugt den String "MaxMustermann" ?> Dabei ist es egal, ob es sich um Strings oder Variablen handeln, die man verketten möchte. Auch Zahlen können so mit Strings verkettet werden. <?php 'Foo'.'Bar'; 'Bla'.$var; $var1.$var2; ?> Apache-PHP-MySQL

Zu PHP (10): Bei diesen Beispiel-Codes wurde zwar die Verkettung ausgerechnet, doch das Ergebnis wurde nicht verwendet. Da das ganze auch wieder als Ausdruck gilt, kann es z.B. in eine Variable gespeichert werden oder direkt mit echo ausgegeben werden. <?php $texte = 'Foo'.'Bar'; echo $variable.'String'; ?> Die Anzahl der Verkettungen ist unbegrenzt. PHP verkettet intern dabei stets weiterhin 2 Ausdrücke miteinander und nutzt das Ergebnis für die nächste Verkettung. <?php $name = $vorname.' '.$nachname; // vorname + ein leerzeichen + nachname echo 'Ich heiße '.$name.', guten Tag.'; ?> Apache-PHP-MySQL

Zu PHP (11): Datentyp Zahlen Wenn man in seinen PHP-Skripten mit Variablen(inhalten) rechnen möchte, muss man dazu einen Datentyp benutzen, der dazu dient, Zahlen darzustellen. Eine naive Möglichkeit ist es, die Zahlen in Strings zu schreiben und damit zu rechnen. <?php echo "5"+"9"; ?> Dies gibt wie erwartet 14 aus. Hier haben wir jedoch Strings miteinander addiert. In der Regel klappt dies nicht, hier hat jedoch Typecasting zugeschlagen und die Strings vorher in echte Zahlen umgewandelt. Für Zahlen gibt es in PHP zwei Datentypen. Dies sind einmal Integer-Zahlen und einmal Float-Zahlen. Apache-PHP-MySQL

Zu PHP (12): Integer-Zahlen Integer-Zahlen sind ganzzahlige Werte, enthalten also kein Nachkommastellen. Beispiele sind 5, 31 oder 199, aber auch negative Zahlen wie -1, -10 oder -44. In PHP schreibt man Integer-Zahlen einfach in den Quelltext, der PHP-Interpreter erkennt diese Ziffernfolge als Zahl. <?php $var = 5; $var2 = 31; $var3 = -10; ?> Apache-PHP-MySQL

Zu PHP (13): Float-Zahlen Float-Zahlen sind Werte mit Nachkommastellen, Beispiele davon sind 5.7, 12.25 oder -4.07, aber auch 10.0, 3.1E-10 oder 4.5e3. <?php $var = 5.7; $var2 = 3.1E-10; $var = .1; ?> Float-Zahlen erkennt man an den Dezimalpunkt ., des Weiteren wird nicht ein Kommata (,) für die Nachkommastellen verwendet. Da der Punkt jedoch auch für die String-Verkettung benutzt wird, muss man hier ein wenig aufpassen, wenn man Float-Zahlen mit Strings verketten will. Notfalls ist es nötig, Klammern zu verwenden. <?php echo 'Prozentualer Anteil:'.77.3.'%'; // wird nicht klappen echo 'Prozentualer Anteil:'.(77.3).'%'; // klappt echo 'Prozentualer Anteil:'. 77.3 .'%'; // klappt, die Leerzeichen "helfen" hier  ?> Apache-PHP-MySQL

Zu PHP (14): Rechenoperatoren Um einfache Rechenoperationen auszuführen, gibt es in PHP 6 Rechenoperatoren. Das sind einmal die 4 Grundrechenarten +, -, * und / und der %-Operator, der den ganzzahligen Rest einer Division bestimmt, und dann noch der --Operator der eine Zahl negiert. <?php $a = 10; $b = 6; echo $a-$b;   // 4 echo $a+$b;   // 16 echo $a*$b;   // 60 echo $a/$b;   // float(1.66666666667) echo -$a;     // -10, analog würde natürlich auch echo 0-$a; gehen echo $a%$b;   // 4 (6 passt einmal in 10, Rest ist 4) ?> Apache-PHP-MySQL

Zu PHP (15): Für kompliziertere Berechnungen gibt es eine Menge mathematischer Funktionen, z.B.: ist eine solche Funktion, die eine Potenz errechnet (x hoch y). <?php $basis = 5; $exponent = 7; echo $basis^$exponent;      // gibt 2 aus, also absolut nicht das was man wollte echo pow($basis, $exponent);  // gibt 78125 aus  ?> Apache-PHP-MySQL

Zu PHP (16): Datentyp Boolean In PHP gibt es einen Datentyp, der theoretisch nur ein einzelnes Bit Speicherplatz benötig. Mit einem Bit können nur die zwei verschiedenen Wert 0 und 1 dargestellt werden. In Programmiersprachen spricht man eher von den Werten true (für 1) und false (für 0). Dieser Datentyp wird dazu verwendet um zu sagen, ob etwas stimmt oder nicht. Oft wird die kleingeschriebene Schreibweise verwendet. <?php $var = true; $var2 = false; $var3 = TRUE; $var4 = FaLsE; $var5 = 'true'; // dies ist der 4 Zeichen lange String 'true', nicht der  // boolesche wert true ?> Apache-PHP-MySQL

Zu PHP (17): Kontrollstrukturen Kontrollstrukturen in PHP werden dazu verwendet, den Programmfluss zu steuern. Die Steuerung ist dabei die Frage, ob ein Programmcode ausgeführt werden soll oder nicht. Dazu verwendet man den Sprachkonstrukt if. Der Aufbau ist dabei wie folgt: <?php if (ausdruck) anweisung ?> Der Ausdruck wird von PHP verarbeitet und muss einen Wert zurückliefern. Dieser wird dann geprüft, ob er dem booleschen Wert true entspricht. Wenn dies der Fall ist, wird die folgende Anweisung ausgeführt. Apache-PHP-MySQL 29 29

Zu PHP (18): <?php if (ausdruck)  {     anweisung_1;     anweisung_2;     // ...     anweisung_n; } ?> Alternative Ausführung <?php if (login_gueltig)  {     // zeige adminbereich } else  {     // zeige loginformular } ?> Apache-PHP-MySQL 30 30

Zu PHP (19): Eine alternative Programmausführung kann auch mit elseif Strukturen erweitert werden. Dies ist ein Block, der zwischen dem if- und else-Block eingefügt wird. <?php if (cond)  {     // tu was } elseif (andere_cond)  {     // mach jenes } else  {     // mach dies } ?> Dieser elseif-Teil wird dann ausgeführt/geprüft, wenn die vorherige If-Abfrage false ergab. Apache-PHP-MySQL 31 31

Zu PHP (20): Es können dabei auch mehrere elseif-Teile verwendet werden: <?php if (cond)  {     // tu was } elseif (andere_cond)  {     // mach jenes } elseif (und_andere_bedingung)  {     // mach das } elseif (bedingung)  {     // php-code } else {     // mach dies } ?> Apache-PHP-MySQL 32 32

Zu PHP (21): Vergleichsoperator == Um zwei Werte auf Gleichheit zu testen, verwendet man in PHP den == Operator. Auf beiden Seiten des Operators werden die Inhalte hingeschrieben, die man vergleichen möchte. <?php "max" == "müller";         // ergibt bool(false), das Ergebnis wurde jedoch  // nicht verwendet/gespeichert $check = "max" == $var;   // prüft den Inhalt und speichert true oder false  // in $check var_dump('foo' == 'bar');  // gibt bool(false) aus ?> Apache-PHP-MySQL 33 33

Zu PHP (22): Andere Vergleichsoperatoren Neben == gibt es noch weitere Vergleichsoperatoren. Für Zahlen existieren zusätzlich die Operatoren <, <=, > und >= die entsprechend das Prüfen, was die Zeichen darstellen und wie man sie im täglichen Sprachgebrauch benutzt. <?php $var = 5 < 7;      // ist true $var = 10 <= 10;   // ist true $var = 9 > 9;      // ist false ?> Dann gibt es noch den Ungleichoperator != um zu prüfen, ob zwei Werte unterschiedlich sind. <?php $var = 10 != 10;   // false $var = 0 != 1;     // true, da verschieden ?> Apache-PHP-MySQL 34 34

Zu PHP (23): AND-Verknüpfung Die AND-Verknüpfung ist die einfachste logische Verknüpfung. Das Ergebnis solch einer Verknüpfung liefert true, wenn beide Argumente true sind. Im Sprachgebrauch verwendet man AND intuitiv genau so, wie z.B. bei Du darfst draußen spielen, wenn du deine Hausaufgaben gemacht hast und dein Zimmer aufgeräumt ist. In PHP wird diese Verknüpfung mit dem AND-Operator realisiert. <?php $var = false and false;  // erzeugt false $var = false and true;   // erzeugt false $var = true  and false;  // erzeugt false $var = true  and true;   // erzeugt true $spielen = $hausaufgaben_fertig and $zimmer_aufgeraeumt; ?> Apache-PHP-MySQL 35 35

Zu PHP (24): OR-Verknüpfung Eine OR-Verknüpfung ist die zweite Standardverknüpfung in PHP, die mit dem Schlüsselwort or realisiert wird. <?php $var = false or false; // liefert false $var = false or true;  // liefert true $var = true  or false; // liefert true $var = true  or true;  // liefert true $gruen_schalten = $knopf1 or $knopf2; ?> Apache-PHP-MySQL 36 36

Zu PHP (25): NOT-Operator Der NOT-Operator ist ein Operator, der nur einen Wert benötigt, nicht wie die anderen beiden Operatoren zwei. Daher gibt es auch nur 2 mögliche Kombinationen: entweder der Wert für den Parameter ist true oder false. In PHP wird dieser Operator mit dem Zeichen ! erzeugt, der zu prüfende Wert wird dann dahinter geschrieben. Das Ergebnis dieses Operators ist die Negation vom verwendeten Wert. Also aus true wird false und umgekehrt. <?php $ist_kopf = !$ist_zahl; ?> Apache-PHP-MySQL 37 37

Zu PHP (26): XOR-Verknüpfung Eine (weitere) erweiterte Verknüpfung ist die XOR-Verknüpfung. Sie arbeitet wie eine OR-Verknüpfung, jedoch darf nur ein Wert true sein. Wenn beide Werte true sind, liefert diese Verknüpfung false. <?php $check = ($var1 and !$var2) or (!$var1 and $var2); ?> In PHP gibt es dafür die Verknüpfungszeichenkette xor. Das x steht dabei für exclusive. <?php $check = false xor false;  // false $check = true  xor false;  // true $check = false xor true;   // true $check = true  xor true;   // false $geschlecht_gueltig = $ist_m xor $ist_w; ?> Apache-PHP-MySQL 38 38

Zu PHP (27): Switch-Abfragen Bei einer switch-Abfrage handelt es sich um eine spezielle Art der Kontrollstruktur. Im Gegensatz zu einer if-Abfrage kann mit einer switch-Abfrage nur ein direkter Vergleich mit einem Wert durchgeführt werden. Wo es mit if möglich ist, komplexe Abfragen mit logischen Verknüpfungen zu erzeugen, verwendet eine switch-Abfrage intern nur den Vergleichsoperator ==. Eine Switch-Abfrage wird mit dem Schlüsselwort switch eingeleitet. Danach folgt in runden Klammern den Ausdruck der geprüft werden soll, üblicherweise eine Variable. Danach folgt der Switchrumpf, eingeleitet und beendet durch geschweifte Klammern ({}). <?php switch ($var)  { } ?> Apache-PHP-MySQL 39 39

Zu PHP (28): <?php $var = 4; switch ($var) { case 0: echo "Ich werde nicht ausgeführt"; case 4:   echo "Ich schon"; case 90: echo "Ich jedoch auch"; } ?> Wenn PHP zu einem case-Block hinspringt, führt er den PHP-Code an dieser Stelle aus. Wenn er dabei auf weitere case-Zeilen stößt, werden diese ignoriert. Dies bedeutet auch, das er nicht automatisch beim nächsten case stoppt. Apache-PHP-MySQL 40 40

Zu PHP (29): Wenn dieses Verhalten nicht erwünscht ist, kann man eine break-Anweisung hinzufügen. Dies beendet dann den case-Teil und springt somit zum Ende der Switch-Abfrage. <?php $var = 4; switch ($var)  { case 0:      echo "Ich werde nicht ausgeführt";      break; case 4:      echo "Ich schon";      break; case 90:      echo "Ich nicht mehr";      break;  // theoretisch überflüssig, man ist eh schon am ende } ?> // default: – wenn kein passendes case vorhanden ist Apache-PHP-MySQL 41 41

Zu PHP (30): Schleifen Es gibt 3 Arten von Schleifen in PHP: while, do-while und for sowie eine vierte Art foreach für arrays. While-Schleifen Eine while-Schleife ist der einfachste Schleifentyp. Sie besitzt einen Schleifenkopf, in dem nur ein Ausdruck steht. Dieser Ausdruck wird vor jedem Schleifendurchlauf ausgewertet und auf Boolean geprüft. Wenn der Ausdruck true ergibt, so wird der Schleifenrumpf ausgeführt. Danach beginnt die nächste Überprüfung des Schleifenkopfs. Wenn der Ausdruck false ergibt, so wird die Schleife beendet bzw. übersprungen und der weitere PHP-Code wird ausgeführt. Da der Ausdruck ständig für einen neuen Schleifendurchlauf überprüft wird, muss der Ausdruck irgendwann den Wert false liefern, damit die Schleife abgebrochen wird. Wenn dies nicht der Fall ist, hat man eine Endlosschleife, das Skript terminiert nicht sauber und der Webserver bricht das Skript von sich aus mit einer entsprechenden Fehlermeldung (meist nach 30 Sekunden) ab. Apache-PHP-MySQL 42 42

Zu PHP (31): Eine While-Schleife wird in PHP mit dem Schlüsselwort while eingeleitet. Danach folgt in runden Klammern (()) der zu prüfende Ausdruck. Dann folgt ein einzelne Anweisung oder mehrere Anweisungen in geschweiften Klammern ({}) , die von der Schleife gesteuert werden. Obwohl eine einzelne Anweisung keine geschweiften Klammern benötigt, ist es wie bei einer if-Abfrage üblich, trotzdem geschweifte Klammern zu verwenden, um die Übersichtlichbarkeit zu erhöhen. <?php while (isAutoDreckig())  {      Reinigen(); } ?> Apache-PHP-MySQL 43 43

Zu PHP (32): Do-While-Schleife Eine Do-While-Schleife besitzt wie die while-Schleife einen zu prüfenden Ausdruck. Dieser steht jedoch am Ende der Schleife und wird auch erst an dieser Stelle überprüft. Da der Schleifenrumpf vor dem Schleifenkopf steht, kann der Schleifenkopf erst nach einem Durchlauf überprüft werden. Dies bedeutet auch, das eine Do-While-Schleife mindestens einmal durchlaufen wird, selbst wenn die Schleifenbedingung false ergibt. Dies ist auch der Unterschied zu einer While-Schleife. Wenn man möchte, dass die Schleife mindestens 1 mal durchlaufen wird, verwendet man eine Do-While-Schleife. Wenn die Schleife auch 0 mal durchlaufen werden soll, verwendet man eine While-Schleife. Apache-PHP-MySQL 44 44

Zu PHP (33): Eine Do-While-Schleife wird mit dem Schlüsselwort do eingeleitet. Danach folgt der Schleifenrumpf, also die Anweisungen, die in einer Schleife ausgeführt werden sollen. Danach kommt das Schlüsselwort while, dann der zu prüfende Ausdruck in runden Klammern und dann (zwingend erforderlich) ein Semikolon. Bei einer While-Schleife ist ein Semikolon nicht Bestandteil der While-Schleife (so fehlerhaft wie bei if();), bei einer Do-While-Schleife hingegen pflicht. <?php do  {      Verbinden();      $daten = DatenAbfragen();      VerbindungBeenden(); } while ($daten > 40) // was auch immer dieser Code machen wird... ?> Apache-PHP-MySQL 45 45

Zu PHP (34): For-Schleife Eine For-Schleife ist wie eine While-Schleife eine kopfgesteuerter Schleife (Do-While-Schleife ist fußgesteuert). Der Schleifenkopf ist somit vor dem Schleifenrumpf. Auch er enthält einen zu prüfenden Ausdruck. Zusätzlich zu einer While-Schleife enthält er noch 2 weitere Felder. Das eine Feld wird einmal zum Start ausgeführt, das andere Feld wird nach jedem Schleifendurchlauf ausgeführt. Eine For-Schleife wird mit dem Schlüsselwort for eingeleitet. Danach folgen in runden Klammern die 3 Felder von der for-Schleife, getrennt mit ;. Nach dem Schleifenkopf folgt wie üblich der Schleifenrumpf mit den Anweisungen. <?php for (startanweisung; bedingung; durchlaufanweisung)  {      // anweisungen... } ?> Apache-PHP-MySQL 46 46

Zu PHP (35): Am Anfang wird der Teil Startanweisung ausgeführt (einmal). Dann wird wie bei while die Bedingung Bedingung geprüft und demnach entschieden, ob der Schleifenrumpf ausgeführt werden soll oder nicht. Am Ende des Schleifendurchlaufs, aber vor der nächsten Überprüfung, wird der Teil Durchlaufanweisung ausgeführt. <?php // gib die Zahlen von 0 bis 9 aus (bei 10 ist die Bedingung false) for ($i=0; $i<10; $i++)  {      echo $i."\n"; } ?> Apache-PHP-MySQL 47 47

Zu PHP (36): Aufbau von Arrays Arrays sind in PHP ein wichtiger Bestandteil. Formulardaten und URL-Parameter sind z.B. in Arrays abgelegt. Werte aus einer Datenbank werden in einem Array gespeichert. Alles was einer mathematischen Funktion entspricht, wird in PHP mit einem Array dargestellt. Formal sind Arrays geordnete (nicht zu verwechseln mit sortiert) Paare von Schlüsseln und Werten. Die Schlüssel, entsprechend im englischen keys genannt, dürfen dabei nur aus Integer-Zahlen oder Strings bestehen. Die Werte sind hingegen nicht eingeschränkt, dürfen insbesondere auch ihrerseits Arrays enthalten. Ein einzelnes Element aus so einem Array verwendet man dann ganz normal wie Variablen. Apache-PHP-MySQL 48 48

Zu PHP (37): Verwenden von Arrays Arrays werden in PHP mit dem Sprachkonstrukt array erzeugt. Die Werte für das Array gibt man dann mit Kommata getrennt als Parameter an. <?php $arr = array("foo", "bar", "bla", 5.6, false, -10, "foo", "foo", "bar", "foo"); ?> Dieses Array besitzt 10 Elemente. Die Schlüssel, oder auch Indizes (Mehrzahl von Index), werden dann automatisch bestimmt, beginnend bei 0 aufsteigend. Somit gehört zum ersten aufgelisteten Arrayelement der Index 0, das letzte aufgelistete Arrayelement besitzt den Index 9. Apache-PHP-MySQL 49 49

Zu PHP (38): <?php $arr = array("foo", "bar", "bla", 5.6, false, -10, "foo", "foo", "bar", "foo"); echo $arr[0];   //  gibt foo aus echo $arr[3]; //  gibt 5.6 aus echo $arr[4];  //  gibt nichts aus, das liegt daran das //  'bool(false)' für echo zu 'string(0) ""' wird var_dump($arr[4]);  //  gibt bool(false); aus ?> Wie man sieht, können gleiche Werte im Array vorhanden sein, da sie sich im Schlüssel unterscheiden. So gibt es Arrayelemente mit dem Wert foo und den Indizes 0, 6, 7 und 9. Apache-PHP-MySQL 50 50

Zu PHP (39): Die Werte eines Arrayelements können beliebig verändert werden, indem der neue Wert wie bei einer Variablen zugewiesen wird. <?php $arr = array("eins", "zwei"); $arr[1] = "fünf"; ?> Wenn es bereits ein Arrayelement mit dem angegebenen Index gibt, so wird der alte Wert mit den neuen Wert überschrieben. Wenn es kein solches Arrayelement gibt, wird ein neues Arrayelement an das Array angefügt, mit dem angegebenen Index und Wert. Damit ist es möglich, zuerst ein leeres Array zu erzeugen und nachher dieses zu füllen. <?php $arr = array(); $arr[3] = "wert"; $arr[9] = "anderer wert"; var_dump($arr); ?> Apache-PHP-MySQL 51 51

Zu PHP (40): Neben Zahlen können auch Strings als Schlüssel/Indizes verwendet werden. <?php $user = array(); $user['Name'] = 'Max Mustermann'; $user['Alter'] = 18; $user['Wohnort'] = 'Deutschland'; echo 'Mein Name ist '.$user['Name'].', ich bin '.$user['Alter'].' Jahre alt  und lebe in '.$user['Wohnort'].".\n"; var_dump($user); ?> Die Ausgabe ist dabei wie folgt: Mein Name ist Max Mustermann, ich bin 18 Jahre alt und lebe in Deutschland. array(3) { ["Name"]=> string(14) "Max Mustermann" ["Alter"]=> int(18) ["Wohnort"]=> string(11) "Deutschland“ } Apache-PHP-MySQL 52 52

Zu PHP (41): Foreach-Schleifen Für Arrays gibt es den speziellen Schleifentyp foreach. Mit diesem Schleifentyp werden die einzelnen Arrayelemente eines Arrays durchlaufen. Eine Foreach-Schleife beginnt mit dem Schlüsselwort foreach. Dann folgt nach der öffnenden Klammer das Array bzw. die Variable, die das Array enthält, welches durchlaufen werden soll. Danach folgt das Schlüsselwort as und eine neue Variable. In dieser Variable wird für jeden Schleifendurchlauf der neue Wert des nächsten Arrayelements gespeichert. Nach der folgenden schließenden Klammer beginnt der Schleifenrumpf. <?php $a = array("foo", "bar", "bla"); foreach ($a as $value)  {     echo $value."\n"; } // gibt nacheinander die Werte aus dem Array aus     ?> Apache-PHP-MySQL 53 53

Zu PHP (42): Wenn man zusätzlich zu den Werten noch die entsprechenden Arrayindizes benötigt, muss man vor der Schleifenvariable noch $var => schreiben. Auch hier kann der Variablennamen frei gewählt werden. <?php $user = array('Name' => "Max Mustermann",               'Alter' => 18,               'Wohnort' => 'Deutschland',               10 => 100); foreach ($user as $k => $v) {      echo "Arrayelement mit dem Index '".$k."' enthält den Wert '".$v."'\n"; } ?> Die Indizes werden z.B. dann gebraucht, wenn in der Schleife Arrayelemente verändert werden sollen. Die Schleifendurchlaufvariablen enthalten nur Kopien der Arrayelemente. Wenn man nun ein Arrayelement verändern möchte, muss man wie üblich über array[index] zugreifen. Apache-PHP-MySQL 54 54

1. PHP-Übung <html> <head><title>1. Uebung mit PHP (ueb1.php)</title></head> <body bgcolor="#ffff00"> <?php echo "Hallo PHP!"; ?> </body> </html> Apache-PHP-MySQL

2. PHP-Übung <html> <head><title>2. Uebung mit PHP (ueb2.php)</title></head> <body bgcolor="#00ffff"> <?php echo "Hallo PHP!<p>"; $a=33.5; $b=7; $c=$a/$b; $x="Division"; echo "Die $x von $a und $b ist $c"; ?> </body> </html> Apache-PHP-MySQL

2. PHP-Übung <html> <head><title>2. Uebung mit PHP (ueb2.php)</title></head> <body bgcolor="#00ffff"> <?php echo "Hallo PHP!<p>"; $a=33.5; $b=7; $c=$a/$b; $x="Division"; echo "Die $x von $a und $b ist $c"; ?> </body> </html> Apache-PHP-MySQL

2. PHP-Übung <html> <head><title>2. Uebung mit PHP (ueb2.php)</title></head> <body bgcolor="#00ffff"> <?php echo "Hallo PHP!<p>"; $a=33.5; $b=7; $c=$a/$b; $x="Division"; echo "Die $x von $a und $b ist $c"; ?> </body> </html> Apache-PHP-MySQL

2. PHP-Übung <html> <head><title>2. Uebung mit PHP (ueb2.php)</title></head> <body bgcolor="#00ffff"> <?php echo "Hallo PHP!<p>"; $a=33.5; $b=7; $c=$a/$b; $x="Division"; echo "Die $x von $a und $b ist $c"; ?> </body> </html> Apache-PHP-MySQL

3. PHP-Übung <html> <head><title>3. Uebung mit PHP (ueb3.php)</title></head> <body bgcolor="#bbbb00"> <form action="ueb-php.php" method=post> <input type=float size=20 name="x"><p> <input type=float size=20 name="y"><p> <input type="submit" value="weg damit!"> <input type="reset" value="zurueck!"> </form> </body> </html> Apache-PHP-MySQL

zur 3. PHP-Übung <html> <head><title>3. Uebung mit PHP (ueb-php.php)</title></head> <body bgcolor="#aaaa00"> <?php echo "Hallo, nochmals PHP!<p>"; $z=$x*$y; echo "Die Multiplikation von $x und $y ist $z<p>"; $a=$x/$y; echo "Die Division von $x und $y ist $a<p>"; ?> </body> </html> Apache-PHP-MySQL

<body bgcolor="#33ffff"> <html> <head><title>Kleines Quiz (quiz.html)</title></head> <body bgcolor="#33ffff"> <h2>Kleines Quiz</h2><a> <form action="quiz2.php" method="post"> Was ist ein Verschlüsselungssystem?<p> <br><input type="radio" name="otto" value="1"> PHP <br><input type="radio" name="otto" value="2"> PGP <br><input type="radio" name="otto" value="3"> HTML <br><input type="radio" name="otto" value="4"> TCP/IP <p> <br><input type="submit" value="Abschicken"> </form> </body> </html> Apache-PHP-MySQL

<body bgcolor="#88aabb"> <html> <head><title>Ergebnis (quiz2.php)</title></head> <body bgcolor="#88aabb"> <h2>Ihr Ergebnis:</h2><a> <?php if ($otto == 2) { echo "Glückwunsch, richtig!"; } else echo "Leider falsch!"; ?> </body> </html> Apache-PHP-MySQL

MySQL-Datenbank „Firma“ mit der Tabelle „Personen“ Datenbankname: Firma Tabelle: Personen Struktur: name varchar(20) vorname varchar(20) personalnummer varchar(5) gehalt decimal(10,0) geburtstag date schluessel varchar(5) Apache-PHP-MySQL

Aufbau des DB-Beispiels „Firma“ db2.php  Datensatz-Anzeige ohne Tabellendarstellung db3.php  Datensatz-Anzeige in einer Tabellenform db4.php  Eingabe von Datensätzen db7.php  Änderung eines Datensatzes db9.php  Auswahl eines zu löschenden Datensatzes db10.php  Update des Datensatzes (db11.php  Löschen des Datensatzes (mit Anzeige) ) db12.php  Schließen der Datenbank „Firma“ Anmerkung: Die Dateien dbx.php müssen im Verzeichnis „htdocs“ gespeichert sein. Der Aufruf erfolgt in der URL eines Browsers mit http://localhost/dbx.php Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ Hier: Anzeige aller Datensätze in Tabellenform Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db2.php (1) <HTML> <HEAD> <TITLE>PHP-Beispiel zu DB: Datensatz-Anzeige ohne Tabelle (db2.php) </TITLE> </HEAD> <BODY BGCOLOR="#00FFFF"> <?php $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $res=mysql_query("SELECT * FROM personen"); $num=mysql_num_rows($res); $result = mysql_query("SELECT COUNT(*) AS anz FROM personen") or die("fehler query"); $row = mysql_fetch_assoc($result); echo "<h2>Anzahl der Datensätze: ".$row['anz']."</h2>"; Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db2.php (2) for($i=0;$i<$num;$i++) { $nn=mysql_result($res, $i, "name"); $vn=mysql_result($res, $i, "vorname"); $pn=mysql_result($res, $i, "personalnummer"); $ge=mysql_result($res, $i, "gehalt"); $gt=mysql_result($res, $i, "geburtstag"); echo "$vn $nn, $pn, $ge, $gt<br>"; } mysql_close($db); ?> <hr> <a href="db3.php">Zur Anzeige aller Datensätze als Tabelle</a><p> <a href="db9.php">Zum Löschen eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db3.php (1) <HTML><HEAD><TITLE>PHP-Beispiel zu DB: Anzeige in einer Tabelle (db3.php) </TITLE></HEAD> <BODY BGCOLOR="#00FFFF"> <table bgcolor="#FFFF00" border=2 cellspace=3 cellpadding=3> <tr><th>Personaldatei</th></tr> <tr><th>Personalnummer</th><th>Vorname</th><th>Nachname</th> <th>Gehalt</th><th>Geburtsdatum</th></tr> <?php $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $res=mysql_query("SELECT * FROM personen"); $num=mysql_num_rows($res); $result = mysql_query("SELECT COUNT(*) AS anz FROM personen") or die("fehler query"); $row = mysql_fetch_assoc($result); echo "<h2>Anzahl der Datensätze: ".$row['anz']."</h2>"; Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db3.php (2) for($i=0;$i<$num;$i++) { $nn=mysql_result($res, $i, "name"); $vn=mysql_result($res, $i, "vorname"); $pn=mysql_result($res, $i, "personalnummer"); $ge=mysql_result($res, $i, "gehalt"); $gt=mysql_result($res, $i, "geburtstag"); echo "<tr><td>$pn</td><td>$vn</td><td>$nn</td> <td>". number_format($ge,2,",",".")." EUR</td>"; echo "<td>$gt</td></tr>"; } mysql_close($db);?> </table> <hr> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabellenform</a><p> <a href="db9.php">Zum Löschen eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> <hr> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db4.php (1) (Eingabe eines Datensatzes) <?php $Abschicken = $_GET["Abschicken"]; echo "Abschicken: $Abschicken\n"; if ($Abschicken=="senden") { $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $eintrag="INSERT INTO personen "; $eintrag .= " (personalnummer,name,vorname,gehalt,geburtstag) "; $eintrag .= " values('".$_GET['pn']."','".$_GET['nn']."','".$_GET['vn']."', '".$_GET['ge']."','".$_GET['gt']."')“ or die("fehler query"); mysql_query($eintrag); $num = mysql_affected_rows(); if($num>0) $Ausgabe= "Es wurde 1 Datensatz hinzugefügt"; else { echo "<h2>Es ist ein Fehler aufgetreten, "; echo "es wurde kein Datensatz hinzugefügt.</h2>"; } mysql_close($db); ?> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db4.php (2) <HTML><HEAD><TITLE>PHP-Beispiel zu DB: Eingabe von Datensätzen (db4.php) </TITLE></HEAD> <BODY BGCOLOR="#bbbbbb"> <h2>Eingabe von Datensätzen in die MySQL-Datei "Firma"</h2><hr> <form action="" method="get"> <input name="pn" size=5>Personalnummer<p> <input name="vn" size=20>Vorname<p> <input name="nn" size=20>Nachname<p> <input name="gt" size=20>Geburtstag (jjjj-mm-tt)<p> <input name="ge" size=10>Gehalt in EURO<p> <input type="submit" name="Abschicken" value="senden"> </form> <?php echo $Ausgabe; ?> <hr> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabelle</a><p> <a href="db3.php">Zur Anzeige aller Datensätze in Tabellenform</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db7.php (1) (Ändern eines DS) <HTML><HEAD><TITLE>PHP-Beispiel zu DB (db7): Ändern eines Datensatzes </TITLE></HEAD> <BODY BGCOLOR="#44ddff"> <h3>Ändern eines Datensatzes <br>aus der MySQL-Datei "Firma", Tabelle "Personen"</h3> <hr> <form> <table bgcolor="#FFFF00" border=2 cellspace=3 cellpadding=3> <tr><th>Personaldatei</th></tr> <tr><th>Auswahl</th><th>Personalnummer</th><th>Vorname</th><th>Nachname</th> <th>Gehalt</th><th>Geburtsdatum</th></tr> <?php $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $res=mysql_query("SELECT * FROM personen") or die("fehler query"); $num=mysql_num_rows($res); Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db7.php (2) for($i=0;$i<$num;$i++) { $nn=mysql_result($res, $i, "name"); $vn=mysql_result($res, $i, "vorname"); $pn=mysql_result($res, $i, "personalnummer"); $ge=mysql_result($res, $i, "gehalt"); $gt=mysql_result($res, $i, "geburtstag"); echo "<tr><td><input type='radio' name='auswahl' value='$pn'>"; echo "<td>$pn</td><td>$vn</td><td>$nn</td> <td>". number_format($ge,2,",",".")." EUR</td>"; echo "<td>$gt</td></tr>"; } mysql_close($db); ?> </table><p> <input type="submit" value="Datensatz anzeigen"> </form> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db7.php (3) <?php $auswahl = $_GET['auswahl']; if ($auswahl != "") { $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $sqlab="select * from personen where"; $sqlab .= " personalnummer='".$auswahl."'"; $res=mysql_query($sqlab); $altnn=mysql_result($res, 0, "name"); $altvn=mysql_result($res, 0, "vorname"); $altge=mysql_result($res, 0, "gehalt"); $altgt=mysql_result($res, 0, "geburtstag"); echo "Führen Sie die Änderungen durch,<br>"; echo "betätigen Sie anschließend den Button<p>"; Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db7.php (4) echo "<form action='db10.php' method='get'>"; echo "<input name='neunn' value='$altnn'> Nachname<p>"; echo "<input name='neuvn' value='$altvn'> Vorname<p>"; echo "<input name='neupn' value='$auswahl'> Personalnummer<p>"; echo "<input name='neuge' value='$altge'> Gehalt<p>"; echo "<input name='neugt' value='$altgt'> Geburtstag<p>"; echo "<input type='hidden' name='oripn' value='$auswahl'>"; echo "<input type='submit' value='Änderungen in DB speichern'><p>"; echo "</form>"; mysql_close($db); } else echo "Es wurde kein Datensatz ausgewählt<p>"; ?> <hr> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabellenform</a><p> <a href="db3.php">Zur Anzeige aller Datensätze als Tabelle</a><p> <a href="db9.php">Zum Löschen eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> <hr> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db9.php (1) <HTML> <HEAD><TITLE>PHP-Beispiel zu DB: Löschen eines Datensatzes (db9.php) </TITLE></HEAD> <BODY BGCOLOR="#DDDDFF"> <h3>Löschen eines Datensatzes <br> aus der MySQL-Datei "Firma", Tabelle "Personen"</h3> <hr> <form> <table bgcolor="#FFFF00" border=2 cellspace=3 cellpadding=3> <tr><th>Personaldatei</th></tr> <tr><th>Auswahl</th><th>Personalnummer</th><th>Vorname</th> <th>Nachname</th><th>Gehalt</th><th>Geburtsdatum</th></tr> <?php $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $res=mysql_query("SELECT * FROM personen"); $num=mysql_num_rows($res); Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db9.php (2) for($i=0;$i<$num;$i++) { $nn=mysql_result($res, $i, "name"); $vn=mysql_result($res, $i, "vorname"); $pn=mysql_result($res, $i, "personalnummer"); $ge=mysql_result($res, $i, "gehalt"); $gt=mysql_result($res, $i, "geburtstag"); echo "<tr><td><input type='radio' name='auswahl' value='$pn'>"; echo "<td>$pn</td><td>$vn</td><td>$nn</td> <td>". number_format($ge,2,",",".")." EUR</td>"; echo "<td>$gt</td></tr>"; } mysql_close($db); ?> </table><p> <input type="submit" value="Datensatz anzeigen"> </form> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db9.php (3) <?php echo "Auswahl: ".$_GET['auswahl']."<br>"; $auswahl = $_GET['auswahl']; if ($auswahl != "") { $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $sqlab="SELECT * FROM personen WHERE"; $sqlab .= " personalnummer='".$auswahl."'"; $res=mysql_query($sqlab); $altnn=mysql_result($res, 0, "name"); $altvn=mysql_result($res, 0, "vorname"); $altge=mysql_result($res, 0, "gehalt"); $altgt=mysql_result($res, 0, "geburtstag"); echo "Wenn Sie diesen Datensatz löschen wollen,<br>"; echo "betätigen Sie anschließend den Button<p>"; echo "<form action='db11.php' method='post'>"; Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db9.php (4) echo "<input name='neunn' value='$altnn'> Nachname<p>"; echo "<input name='neuvn' value='$altvn'> Vorname<p>"; echo "<input name='neupn' value='$auswahl'> Personalnummer<p>"; echo "<input name='neuge' value='$altge'> Gehalt<p>"; echo "<input name='neugt' value='$altgt'> Geburtstag<p>"; echo "<input type='hidden' name='oripn' value='$auswahl'>"; echo "<input type='submit' value='Löschen in DB speichern'><p>"; echo "</form>"; mysql_close($db); } else echo "Es wurde kein Datensatz ausgewählt<p>"; ?> <hr> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabelle</a><p> <a href="db3.php">Zur Anzeige aller Datensätze in Tabellenform</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> <hr> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db10.php (1) (Update eines DS) <HTML> <BODY BGCOLOR="#abcdef"> <?php echo "Datei $db<br>"; echo "Neuer Vorname: '".$_GET['neuvn']."'<br>"; echo "personalnummer oripn ".$_GET['oripn']."<br>"; $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $sqlab="UPDATE personen SET name = '".$_GET['neunn']."',"; $sqlab .="vorname = '".$_GET['neuvn']."',"; $sqlab .="personalnummer = '".$_GET['neupn']."',"; $sqlab .="gehalt = '".$_GET['neuge']."',"; $sqlab .="geburtstag = '".$_GET['neugt']."'"; $sqlab .=" WHERE personalnummer='".$_GET['oripn']."'"; mysql_query($sqlab ) or die("Fehler Query"); Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db10.php (2) $num=mysql_affected_rows(); if ($num>0) echo "Der Datensatz wurde geändert<p>"; else echo "Der Datensatz wurde nicht geändert<p>"; mysql_close($db); ?> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabelle</a><p> <a href="db3.php">Zur Anzeige aller Datensätze in Tabellenform</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> <hr> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db11.php (1) (Löschen eines DS) <HTML> <BODY BGCOLOR="#abcd78"> <?php echo "Auswahl db11: $auswahl<br>"; echo "Datei $db<br>"; echo "Vorname: '".$_POST['neuvn']." '<br>"; echo "personalnummer oripn ".$_POST['oripn']."<br>"; $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); $sqlab="DELETE FROM personen WHERE "; $sqlab .="personalnummer = '".$_POST['oripn']."'"; mysql_query($sqlab); Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db11.php (2) $num=mysql_affected_rows(); if ($num>0) echo "Der Datensatz wurde gelöscht<p>"; else echo "Der Datensatz wurde nicht gelöscht<p>"; mysql_close($db); ?> <a href="db9.php">Zum Löschen eines weiteren Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a><p> <a href="db2.php">Zur Anzeige aller Datensätze ohne Tabell</a><p> <a href="db3.php">Zur Anzeige aller Datensätze in Tabellenform</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a><p> <a href="db12.php">Datenbank "Firma" beenden</a> </BODY> </HTML> Apache-PHP-MySQL

PHP-Quelltexte des Datenbankbeispiels „Firma“ db12.php (1) (Schließen der DB „Firma“) <HTML> <HEAD> <TITLE>PHP-Beispiel zu DB: Beenden der DB (db12.php) </TITLE> </HEAD> <BODY BGCOLOR="#eeeeff"> <h2>Jetzt ist die DB "Firma" geschlossen! <br>Tschüss!</h2> <?php $db=mysql_connect("localhost","root"); mysql_select_db("firma",$db); mysql_close($db); ?> </BODY> </HTML> Apache-PHP-MySQL

Quakenet/#php Tutorial: http://tut.php-quake.net Literatur Apache: MySQL: PHP: Schwarze et al.: E-Commerce und LAMP-Architektur In: wisu Das Wirtschaftsstudium, 32. Jg. (2002), Heft 11, S. 1426 - 1433. Adler, Olivia; Hartmut Holzgraefe: PHP lernen. - Addison-Wesley Verlag, 2002. Quakenet/#php Tutorial: http://tut.php-quake.net Apache-PHP-MySQL