====== Beispiel: Apfel-Datenbank ====== Dieses Beispiel soll einige wichtige Tätigkeiten im Zusammenhang mit PHP und MySQL demonstrieren. ===== (1) Startdatei ===== Title

Webinterface für Online-Apfelshop


Bitte wählen Sie!
---- ===== (2) Bestellformular ===== Bitte geben Sie folgende Daten für Ihre Bestellung ein:

Vorname und Nachname

Strasse

PLZ und Ort

Apfelsorte:
Jonagold Gala Elstar

kg (Menge)

---- ===== (3) In die Datenbank schreiben ===== ' . $dbname . "->" . $tblname . ""; echo "
"; // -------------------------- if (isset($_POST["Senden"])) { echo "Schreibe neuen Eintrag...
"; // Formulardaten übernehmen $name = $_POST["name"]; $strasse = $_POST["strasse"]; $ort = $_POST["ort"]; $sorte = $_POST["sorte"]; $menge = $_POST["menge"]; try { // SQL-Anweisung mit Platzhaltern für sichere Datenübergabe $eintrag = "INSERT INTO bestellung (Name, Strasse, Ort, Sorte, Menge) VALUES (:name, :strasse, :ort, :sorte, :menge)"; // SQL-Anweisung vorbereiten $stmt = $db->prepare($eintrag); // Daten an die Platzhalter binden $stmt->bindParam(':name', $name); $stmt->bindParam(':strasse', $strasse); $stmt->bindParam(':ort', $ort); $stmt->bindParam(':sorte', $sorte); $stmt->bindParam(':menge', $menge); // Ausführen der SQL-Anweisung if ($stmt->execute()) { echo "Eintrag in der Datenbank wurde erfolgreich vorgenommen!
"; echo "

Folgende Angaben wurden gespeichert:

"; echo "$name
"; echo "$strasse
"; echo "$ort
"; echo "$menge kg $sorte
"; } else { echo "Es gab ein Problem beim Einfügen der Daten."; } } catch (PDOException $e) { die("SQL-Fehler: " . $e->getMessage()); } } // -------------------------- // Die Verbindung zur Datenbank muss nicht manuell geschlossen werden // PDO schließt die Verbindung automatisch am Ende des Skripts echo "
Verbindung beendet!"; // Weiteres Menü echo "
"; echo 'Verwaltungskonsole
'; ?>
* ''connect.inc.php'' findet sich [[:inf:mysql-php:connect.inc.php|hier]]. ---- ===== (4) Datenbank anzeigen ===== query($abfrage); // Anzahl der Datensätze ermitteln $dszahl = $stmt->rowCount(); echo ' - Ausgabe von ' . $dbname . "->" . $tblname . ""; echo "   Der Abfrage entsprechen $dszahl Datensätze!
"; // Tabelle öffnen echo ""; // Daten in der Tabelle ausgeben foreach ($stmt as $i => $row) { // Werte aus der Datenbank holen $name = $row['Name']; $strasse = $row['Strasse']; $ort = $row['Ort']; $sorte = $row['Sorte']; $menge = $row['Menge']; // Zeilenfarbe wechseln (Zebra-Streifen-Effekt) if ($i % 2 == 0) { echo ''; } else { echo ''; } // Daten in die Tabelle einfügen echo ""; echo ''; } // Tabelle schließen echo "
$name$strasse$ort$sorte$menge
"; } catch (PDOException $e) { // Fehlerbehandlung bei SQL-Abfragen echo "
Die SQL-Anweisung schlug fehl!
Fehler: " . $e->getMessage(); } // Verbindung muss nicht explizit geschlossen werden, PDO schließt sie automatisch echo "
Verbindung beendet!"; // Weiteres Menü echo "
"; echo 'Verwaltungskonsole
'; ?>
---- ===== (5) Datenbank editieren ===== $tblname möglich
"; // Daten speichern if (isset($_POST["speichern"])) { $ID = $_POST['ID']; $name = $_POST['Name']; $strasse = $_POST['Strasse']; $ort = $_POST['Ort']; $sorte = $_POST['Sorte']; $menge = $_POST['Menge']; // SQL-Abfrage zum Aktualisieren der Daten $abfrage = "UPDATE bestellung SET Name = :name, Strasse = :strasse, Ort = :ort, Sorte = :sorte, Menge = :menge WHERE Name = :ID"; $stmt = $db->prepare($abfrage); $stmt->bindParam(':name', $name); $stmt->bindParam(':strasse', $strasse); $stmt->bindParam(':ort', $ort); $stmt->bindParam(':sorte', $sorte); $stmt->bindParam(':menge', $menge); $stmt->bindParam(':ID', $ID); if ($stmt->execute()) { echo "Änderung erfolgreich übernommen

"; } else { echo "SQL-Fehler."; } } // Daten aus der Datenbank holen $abfrage = "SELECT * FROM $tblname"; $stmt = $db->query($abfrage); $dsz = $stmt->rowCount(); // Ausgabe der Daten echo ""; echo ""; foreach ($stmt as $i => $row) { $id = $row['id']; $name = $row['Name']; $strasse = $row['Strasse']; $ort = $row['Ort']; $sorte = $row['Sorte']; $menge = $row['Menge']; echo ($i % 2 == 1) ? "" : ""; echo ""; } echo "
NameStrasseOrtSorteMenge
$name$strasse$ort$sorte$menge
"; // Ändern ermöglichen if (isset($_POST["Aendern"])) { $id = $_POST['ID']; $abfrage = "SELECT * FROM $tblname WHERE Name = :id"; $stmt = $db->prepare($abfrage); $stmt->bindParam(':id', $id); $stmt->execute(); $row = $stmt->fetch(); if ($row) { $name = $row['Name']; $strasse = $row['Strasse']; $ort = $row['Ort']; $sorte = $row['Sorte']; $menge = $row['Menge']; ?>

Daten eines Kunden ändern:
Geben Sie die id des Kunden ein, um seine/ihre Daten zu ändern:
        Name:  
        
===== (6) Löschen in Datenbank ===== $tblname möglich
"; // Daten löschen if (isset($_POST["Loeschen"])) { $ID = $_POST["ID"]; // SQL-Abfrage zum Löschen der Daten $abfrage = "DELETE FROM bestellung WHERE Name = :ID"; $stmt = $db->prepare($abfrage); $stmt->bindParam(':ID', $ID); if ($stmt->execute()) { echo "Daten erfolgreich gelöscht.

"; } else { echo "SQL-Fehler."; } } else { ?>
Daten eines Kunden löschen:
Geben Sie den Namen des Kunden ein, um seine/ihre Daten zu löschen:
        Name:  
        

query($abfrage); $dsz = $stmt->rowCount(); // Ausgabe der Daten echo "
"; echo ""; foreach ($stmt as $i => $row) { $name = $row['Name']; $strasse = $row['Strasse']; $ort = $row['Ort']; $sorte = $row['Sorte']; $menge = $row['Menge']; echo ($i % 2 == 1) ? "" : ""; echo ""; } echo "
NameStraßeOrtSorteMenge
$name$strasse$ort$sorte$menge
"; ?>
===== (7) Datenbank sortieren ===== $tblname möglich
"; // Daten aus der Datenbank holen $abfrage = "SELECT * FROM $tblname"; $stmt = $db->query($abfrage); $dsz = $stmt->rowCount(); // Wenn "Sortieren" geklickt wurde, nach Auswahl sortieren if ($_POST["Sortieren"] == "Sortieren") { $wahl = $_POST["wahl"]; // SQL-Abfrage mit ORDER BY für die ausgewählte Spalte $abfrage = "SELECT * FROM $tblname ORDER BY $wahl"; $stmt = $db->query($abfrage); } ?>
"; // Radiobuttons für die Spaltenauswahl echo " "; // Tabellenüberschriften echo "Name Straße Ort Sorte Menge"; // Ausgabe der Datensätze foreach ($stmt as $i => $row) { $name = $row['Name']; $strasse = $row['Strasse']; $ort = $row['Ort']; $sorte = $row['Sorte']; $menge = $row['Menge']; // Wechselnde Hintergrundfarbe für jede zweite Zeile echo ($i % 2 == 1) ? "" : ""; echo "$name$strasse$ort$sorte$menge"; } echo ""; ?>
Verbindung beendet!"; echo "

Zurück"; ?>