emailconfirmed, nsInternRO, nsInternRW, Administrators
3,356
edits
(added beispiel) |
|||
Line 6: | Line 6: | ||
=== 1. Database Connection === | === 1. Database Connection === | ||
Jedes mal wenn auf die Datenbank zugegriffen werden soll, muss eine Verbindung aufgebaut werden, für die wir die Verbindungsdaten benötigen. Deshalb wird hier eine kurze PHP-Datei angelegt, die wir in alle weiteren PHP-Skripte einfach inkludieren können. Es ist hier besonders darauf zu achten, dass diese Datei niemals mit einer anderen Endung als .php oder .php5 am Server liegen sollte, damit diese Daten von niemandem ausgelesen werden können. Eine weitere übliche Vorgehensweise ist, diese Datei außerhalb des Webserver-Wurzelverzeichnisses abzulegen (auf das kein normaler Websurfer Zugriff haben sollte) | |||
''Datei config_db.php:'' | ''Datei config_db.php:'' | ||
Line 23: | Line 23: | ||
} | } | ||
?> | ?> | ||
</source> | </source> | ||
=== 2. Das Backend === | |||
In diesem Beispiel gehen wir von einer einfachen Datenbankstruktur aus. Wir haben Produkte, und diese Produkte haben alle einen Titel, eine Beschreibung und einen Preis. | |||
Es gibt nun zwei PHP-Skripte. Das eine ist das "Frontend", hier wird die Datenbank ausgelesen und alle vorhandenen Produkte in einer Tabelle angezeigt. Das zweite Script ist das Backend, in dem wir die einzelnen Einträge bearbeiten können - außerdem wird hier die Tabelle angelegt, wenn sie nicht schon vorhanden ist. | |||
''Datei backend.php:'' | |||
<source lang="PHP"> | |||
<HTML> | |||
<head><title>MySQL Example</title></head> | |||
<body> | |||
<?PHP | |||
// connect to db | |||
include("config_db.php"); | |||
// ********** create db ********** | |||
// create database (if not already existing) | |||
$sql = "CREATE DATABASE IF NOT EXISTS $db_name"; | |||
if(! mysql_query($sql, $link)) { | |||
echo("<p class=\"error\">Fehler: Datenbank kann nicht angelegt werden!</p>"); | |||
return; | |||
} | |||
// select db | |||
mysql_select_db($db_name, $link); | |||
// ********** create tables ********** | |||
// create products (if not already existing) | |||
$sql = "CREATE TABLE IF NOT EXISTS products ( | |||
prodName CHAR(255) DEFAULT 'unnamed' NOT NULL, | |||
prodPrice FLOAT UNSIGNED DEFAULT '0.00', | |||
PRIMARY KEY(prodName) )"; | |||
if(! mysql_query($sql, $link)) { | |||
echo("<p class=\"error\">Fehler: Table \"products\" kann nicht angelegt werden!</p>"); | |||
echo("<p class=\"error\">". mysql_error($link) ."</p>"); | |||
return; | |||
} | |||
// ********** default values ********** | |||
// fill products with some default values (products) | |||
$products = array('Shampoo', 'Soap'); | |||
$sql = "INSERT INTO products | |||
(prodName, prodPrice) | |||
VALUES ('Shampoo','4.95')"; | |||
if(! mysql_query($sql, $link)) { } | |||
$sql = "INSERT INTO products | |||
(prodName, prodPrice) | |||
VALUES ('Soap','1.99')"; | |||
if(! mysql_query($sql, $link)) { } | |||
// ********** update values ********** | |||
if($_SERVER['REQUEST_METHOD'] == 'POST') { | |||
// update prices | |||
$i = 0; | |||
foreach($products as $prodName) { | |||
// replace float "," with "." $_POST['prodPrice'] is from the posted form | |||
$prodPrice = str_replace(",",".",$_POST['prodPrice_'.$i]); | |||
// update db | |||
$sql = " | |||
UPDATE products | |||
SET prodPrice = '$prodPrice' | |||
WHERE prodName = '$prodName' | |||
"; | |||
if(! mysql_query($sql, $link)) { | |||
echo("<p class=\"error\">Fehler: Konnte Wert nicht aktualisieren!</p>"); | |||
echo("<p class=\"error\">". mysql_error($link) ."</p>"); | |||
} | |||
$i++; | |||
} | |||
} | |||
echo "<p>Die Preise wurden aktualisiert!</p>"; | |||
// ********** PHP Form ********** ?> | |||
<form method='post' action='<?php echo $PHP_SELF; ?>' enctype='multipart/form-data'> | |||
<table width="90%" align="center" valign="top"> | |||
<?php | |||
$result = mysql_query("SELECT * FROM products"); | |||
$i = 0; | |||
while($entry = mysql_fetch_array($result, MYSQL_BOTH)) { | |||
printf("<tr> | |||
<td>%s</td> | |||
<td><input type='text' name='prodPrice_$i' value='%01.2f' size='8'></input></td> | |||
</tr>", | |||
$entry[prodName], | |||
$entry[prodPrice] ); | |||
$i++; | |||
} | |||
?> | |||
</table> | |||
<p><input type="submit" value="aktualisieren..." /></p> | |||
</form> | |||
</body> | |||
</HTML> | |||
</source> | |||
== Ressourcen == | == Ressourcen == |