340 likes | 477 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 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
LinuxoderWindowsals Betriebssystem Apacheals Web Server MySQLals Datenbank-Server PHP als verbindende Skriptsprache (http://www.xampp.de --> Apachefriends) LAMP (WAMP) 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 mit 60 % MA das z.Zt. das 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 Datenban 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
<html> <head><title>1. Uebung mit PHP (ueb1.php)</title></head> <body bgcolor="#ffff00"> <?php echo "Hallo PHP!"; ?> </body> </html> Apache-PHP-MySQL
<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
<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
<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
<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
<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
<HTML><HEAD> <TITLE>2. PHP-Beispiel (Datensatz-Anzeige ohne Tabelle)(db2.php) </TITLE></HEAD> <BODY BGCOLOR="#00FFFF"> <?php $db=mysql_connect("localhost","root"); $res=mysql_db_query("firma","select * from personen"); $num=mysql_num_rows($res); echo "$num Datensätze gefunden<hr>"; 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> </BODY></HTML> Apache-PHP-MySQL
Datensatz-Anzeige in einer Tabelle <HTML> <HEAD> <TITLE>3. PHP-Beispiel (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> Apache-PHP-MySQL
// Fortsetzung von db3.php <?php $db=mysql_connect("localhost","root"); $res=mysql_db_query("firma","select * from personen"); $num=mysql_num_rows($res); 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>"; echo "<tr><td>$pn</td><td>$vn</td><td>$nn</td><td> ". number_format($ge,2,",",".")." EUR</td><td>$gt</td></tr>"; } mysql_close($db); ?> </table><hr><a href="db7.php">zurück</a><p><hr> </BODY> </HTML> Apache-PHP-MySQL
Eingabe von Datensätzen <HTML> <HEAD> <TITLE>4. PHP-Beispiel (Eingabe von Datensätzen)(db4.php) </TITLE> </HEAD> <BODY BGCOLOR="#aaaaaa"> <h2>Eingabe von Datensätzen in die MySQL-Datei "Firma"</h2> <hr> <form> <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"> <input type="reset"> </form> Apache-PHP-MySQL
// Fortsetzung von db4.php <?php if ($Abschicken) { $db=mysql_connect("localhost","root"); $eintrag="insert into personen "; $eintrag .= " (personalnummer,name,vorname,gehalt,geburtstag) "; $eintrag .= " values('$pn','$nn','$vn',$ge,'$gt')"; mysql_db_query("firma", $eintrag); $num = mysql_affected_rows(); if($num>0) echo "Es wurde 1 Datensatz hinzugefügt<p>"; else { echo "Es ist ein Fehler aufgetreten, "; echo "es wurde kein Datensatz hinzugefügt.<p>"; } mysql_close($db); } ?> <hr><a href="db7.php">zurück</a><p><hr> </BODY></HTML> Apache-PHP-MySQL
Ändern eines Datensatzes und Menü <HTML> <HEAD> <TITLE>7. PHP-Beispiel (Menü: Ändern eines Datensatzes)(db7.php) </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> Apache-PHP-MySQL
// 1. Fortsetzung von db7.php <?php if ($auswahl) { $db=mysql_connect("localhost","root"); $sqlab="select * from personen where"; $sqlab .= " personalnummer='$auswahl'"; $res=mysql_db_query("firma",$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"); Apache-PHP-MySQL
// 2. Fortsetzung von db7.php echo "Führen Sie die Änderungen durch,<br>"; echo "betätigen Sie anschließend den Button<p>"; echo "<form action='db10.php' method='post'>"; 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 "<input type='reset'>"; echo "</form>"; mysql_close($db); } else echo "Es wurde kein Datensatz ausgewählt<p>"; ?> Apache-PHP-MySQL
// 3. Fortsetzung von db7.php <hr> <a href="db3.php">Zur Anzeige aller Datensätze</a><p> <a href="db9.php">Zum Löschen eines Datensatzes</a><p> <a href="db4.php">Zur Eingabe eines Datensatzes</a> <hr> </BODY> </HTML> Apache-PHP-MySQL
Löschen eines Datensatzes <HTML> <HEAD> <TITLE>9. PHP-Beispiel (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> Apache-PHP-MySQL
// 1. Fortsetzung von db9.php <?php $db=mysql_connect("localhost","root"); $res=mysql_db_query("firma","select * from personen"); $num=mysql_num_rows($res); 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>"; 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); ?> Apache-PHP-MySQL
// 2. Fortsetzung von db9.php </table><p> <input type="submit" value="Datensatz anzeigen"> </form> <?php echo "Auswahl: $auswahl<br>"; if ($auswahl) { $db=mysql_connect("localhost","root"); $sqlab="select * from personen where"; $sqlab .= " personalnummer='$auswahl'"; $res=mysql_db_query("firma",$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"); Apache-PHP-MySQL
// 3. Fortsetzung von db9.php 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'>"; 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 "<input type='reset'>"; echo "</form>"; mysql_close($db); } else echo "Es wurde kein Datensatz ausgewählt<p>"; ?> <hr> <a href="db3.php">Zur Anzeige aller Datensätze</a><p> <a href="db7.php">Zum Ändern eines Datensatzes</a> <hr></BODY> </HTML> Apache-PHP-MySQL
Anzeigen der Änderung eines DS <HTML> <BODY> // db10.php <?php echo "Datei $db<br>"; echo "Neuer Vorname: '$neuvn'<br>"; echo "personalnummer oripn $oripn<br>"; $db=mysql_connect("localhost","root"); echo "Datei $db<br>"; $sqlab="update personen set name = '$neunn',"; $sqlab .="vorname = '$neuvn',"; $sqlab .="personalnummer = '$neupn',"; $sqlab .="gehalt = '$neuge',"; $sqlab .="geburtstag = '$neugt'"; $sqlab .=" where personalnummer=$oripn"; mysql_db_query("firma", $sqlab); $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="db7.php">zurück</a><hr></BODY></HTML> Apache-PHP-MySQL
Anzeigen der Löschung eines DS <HTML> <BODY> <?php echo "Auswahl db11: $auswahl<br>"; echo "Datei $db<br>"; echo "Vorname: '$neuvn'<br>"; echo "personalnummer oripn $oripn<br>"; $db=mysql_connect("localhost","root"); echo "Datei $db<br>"; $sqlab="delete from personen where "; $sqlab .="personalnummer = $oripn"; mysql_db_query("firma", $sqlab); $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="db7.php">zurück</a><hr></BODY></HTML> Apache-PHP-MySQL
Apache: MySQL: PHP: Schwarze et al.: E-Commerce und LAMP-ArchitekturIn: wisu Das Wirtschaftsstudium, 32. Jg. (2002), Heft 11, S. 1426 - 1433. Adler, Olivia; Hartmut Holzgraefe: PHP lernen. - Addison-Wesley Verlag, 2002. Literatur Apache-PHP-MySQL