900 likes | 1.21k Views
Apache - PHP - MySQL. Web- Server #1. Web- Server #2. Client-Server-Prinzip. Browser Ebene (Client) Web-Server Ebene Datenbank-Server Ebene. Datenbank- Server. Datenbank- Server. L inu x oder W indows oder MacOS als Betriebssystem A pache als Web Server M ySQL als Datenbank-Server
E N D
Apache - PHP - MySQL Apache-PHP-MySQL
Web-Server#1 Web-Server#2 Client-Server-Prinzip Browser Ebene(Client) Web-Server Ebene Datenbank-ServerEbene Datenbank-Server Datenbank-Server Apache-PHP-MySQL
Linux oder Windows oder MacOS als Betriebssystem Apache als Web Server MySQL als Datenbank-Server PHP als verbindende Skriptsprache (http://www.xampp.de --> Apachefriends) LAMP (WAMP, XAMPP) Systemarchitektur(xampp) Apache-PHP-MySQL
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 Web Server - Apache Apache-PHP-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) Datenbank Server - MySQL Apache-PHP-MySQL
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 PHP – Hypertext Preprocessor Apache-PHP-MySQL
PHP Code wird direkt in die HTML Seiten eingebunden Von HTML Seiten abweichende Dateiendung *.php Beispiel: Hello.php PHP - Funktionsweise <html> <head><title>PHP Test</title></head><body><?php echo "Hello World<p>"; ?></body> </html> Apache-PHP-MySQL
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 PHP Datenbankanbindung Apache-PHP-MySQL
.php Einbindung PHP als Apache-Modul Webseite in HTML:<html><body>Hello world</body></html> Browser(Client) Antwort Basis-Server Anfrage 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
Was ist zu beachten? Wie installiere ich Apache, MySQL, PHP? Übungen mit PHP Übungen mit PHP - Apache - MySQL Hinweise zur Übung 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. <?phpecho “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. <?phpecho ‘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
Zu PHP (18): <?phpif (ausdruck) { anweisung_1; anweisung_2; // ... anweisung_n;}?> Alternative Ausführung <?phpif (login_gueltig) { // zeige adminbereich } else { // zeige loginformular }?> Apache-PHP-MySQL 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. <?phpif (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
Zu PHP (20): Es können dabei auch mehrere elseif-Teile verwendet werden: <?phpif (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
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
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
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
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
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
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
Zu PHP (27): Switch-Abfragen Bei einer switch-Abfrage handelt es sich um eine spezielle Art der Kontrollstruktur. Im Gegensatz zu einerif-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
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
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
Zu PHP (30): Schleifen Es gibt 3 Arten von Schleifen in PHP: while, do-whileundfor 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
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
Zu PHP (32): Do-While-Schleife EineDo-While-Schleife besitzt wie diewhile-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 einerWhile-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
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
Zu PHP (34): For-Schleife EineFor-Schleife ist wie eine While-Schleife eine kopfgesteuerter Schleife (Do-While-Schleifeist 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
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
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 keysgenannt, 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
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
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