Jetzt App downloaden und 10 Tage kostenlos testen
Währung Sprache auswählen Region auswählen

PHP und MySQL im bluetronix CMS verbinden

In diesem Tutorial erstellst du eine eigene Datenbanktabelle und verbindest sie mit einer CMS-Seite. Anhand praktischer Beispiele lernst du die SQL-Befehle INSERT, REPLACE, SELECT und UPDATE kennen und erfährst, wie du Datenbankwerte über HTML-Platzhalter auf deiner Webseite ausgibst.

Beispielseite anlegen

Für dieses Tutorial legst du zunächst eine neue Beispielseite an.

Zum Beispiel:

PHP MySQL Example

Die Seite kann zunächst vollständig leer sein.

Öffne die Seite anschließend im normalen HTML-Editor und füge einen beliebigen Seitenabschnitt ein. Dieser HTML-Bereich dient später als Vorlage für die Daten, die aus der Datenbank geladen werden.

Datenbanktabelle erstellen

Bevor du Daten speichern kannst, benötigst du eine eigene Datenbanktabelle.

Öffne dazu:

Datenbank → Neue Tabelle

Für dieses Beispiel verwenden wir eine Tabelle mit den Spalten ID, Date, Title, Description und Image.

ID enthält die eindeutige ID des Datensatzes. Date speichert Datum und Uhrzeit. Title enthält den Titel, Description einen längeren Beschreibungstext und Image den Bildnamen.

Tabellen-, Spalten- und Variablennamen sollten innerhalb der Entwickler-Tutorials immer in englischer Sprache verwendet werden.

PHP-Code öffnen

Nachdem die Tabelle angelegt wurde, wechselst du zurück zu deiner Beispielseite.

Öffne dort:

PHP Code

Von diesem Bereich aus kannst du direkt auf die Datenbank zugreifen.

Daten mit INSERT oder REPLACE speichern

Im ersten Beispiel speicherst du einen Datensatz in der zuvor erstellten Datenbanktabelle.

Setze dazu zunächst die benötigten PHP-Variablen.

Beispiel:

$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";

Diese Werte kannst du anschließend mit einem MySQL Prepared Statement speichern.

Für Datenbankzugriffe solltest du grundsätzlich Prepared Statements verwenden. Dadurch werden die Werte getrennt vom eigentlichen SQL-Befehl verarbeitet.

Beispiel mit REPLACE:

$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Rufe die Seite anschließend einmal auf.

Öffne danach:

Datenbank → Anzeigen

Dort sollte der neu erzeugte Datensatz sichtbar sein.

Unterschied zwischen INSERT und REPLACE

INSERT fügt einen neuen Datensatz hinzu.

Existiert bereits ein Datensatz mit derselben eindeutigen ID beziehungsweise demselben Primary Key, kann ein normales INSERT einen Duplicate-Key-Fehler verursachen.

REPLACE kann verwendet werden, wenn ein vorhandener Datensatz mit derselben eindeutigen ID ersetzt werden soll.

Für Testbeispiele mit einer festen ID ist REPLACE deshalb häufig praktischer, da die Seite mehrfach aufgerufen werden kann.

Daten mit SELECT auslesen

Im nächsten Schritt liest du den gespeicherten Datensatz wieder aus der Datenbank aus.

Beispiel:

$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();

if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}

Die ausgelesenen Werte befinden sich anschließend in den Variablen $Date, $Title, $Description und $Image.

Datenbank und $LayoutHTML verbinden

Die globale CMS-Variable $LayoutHTML enthält während des Rendering-Prozesses das aktuell erzeugte HTML der Seite.

Dadurch kannst du eigene Platzhalter innerhalb des HTML-Codes mit Daten aus der MySQL-Tabelle ersetzen.

Platzhalter im HTML-Code setzen

Öffne wieder den HTML-Code deiner Beispielseite.

Die Inhalte des zuvor eingefügten Seitenabschnitts kannst du jetzt durch eigene Platzhalter ersetzen.

Zum Beispiel:

__MyDate__
__MyTitle__
__MyDescription__
__MyImage__

Ein vereinfachtes HTML-Beispiel:

<section>
   <div class="container">
      <img src="__MyImage__" alt="">
      <small>__MyDate__</small>
      <h2>__MyTitle__</h2>
      <p>__MyDescription__</p>
   </div>
</section>

Für dieses erste MySQL-Beispiel können vorhandene Übersetzungsmarken zunächst entfernt werden. Dadurch ist leichter zu erkennen, welche Inhalte direkt durch PHP und MySQL ersetzt werden.

Datenbankwerte im Layout einsetzen

Nachdem die Daten mit SELECT geladen wurden, ersetzt du die Platzhalter innerhalb von $LayoutHTML.

Beispiel:

$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);

Der Ablauf ist damit:

MySQL-Datenbank → SELECT → PHP-Variablen → str_replace() → $LayoutHTML → fertige Webseite

Die Inhalte der Datenbank werden dadurch direkt innerhalb des vorhandenen HTML-Layouts angezeigt.

Änderungen direkt über die Datenbank testen

Öffne:

Datenbank → Anzeigen

Bearbeite anschließend den vorhandenen Datensatz.

Zum Beispiel kannst du den Titel von My Title auf New My Title ändern.

Auch das Bild kannst du über den entsprechenden BX-Image-Button ändern.

Nach dem Speichern und erneuten Laden der Webseite werden die geänderten Daten direkt im Seitenlayout angezeigt.

Damit besteht eine direkte Verbindung zwischen:

Datenbank → PHP → $LayoutHTML → Webseite

Daten mit UPDATE verändern

Mit UPDATE kannst du einen bereits vorhandenen Datensatz direkt über PHP verändern.

Dabei wird über eine Bedingung festgelegt, welcher Datensatz geändert werden soll.

Nach dem Ausführen des Updates kannst du die Daten erneut mit SELECT laden und anschließend über $LayoutHTML auf deiner Seite anzeigen.

Zusammenfassung

Mit PHP und MySQL kannst du Daten innerhalb des bluetronix CMS speichern, auslesen und verändern.

INSERT oder REPLACE speichern Daten, SELECT liest Daten aus und UPDATE verändert bestehende Datensätze.

Über $LayoutHTML kannst du die geladenen Daten anschließend direkt in vorhandene HTML-Strukturen einsetzen.

Damit lassen sich Datenbankinhalte sauber mit dem HTML-Layout einer CMS-Seite verbinden.

FAQ

was Kunden uns häufig Fragen

Was benötige ich für dieses PHP- und MySQL-Tutorial?

Du benötigst einen Entwicklerzugang zum bluetronix CMS. Außerdem solltest du bereits wissen, wie der CMS-Site-Rendering-Prozess funktioniert und welche Aufgabe die Variable $LayoutHTML hat.

Wo erstelle ich eine neue Datenbanktabelle?

Öffne im CMS den Bereich Datenbank → Neue Tabelle.

Welche Spalten werden im Beispiel verwendet?

Im Tutorial werden die Spalten ID, Date, Title, Description und Image verwendet.

Warum sollte ich Prepared Statements verwenden?

Prepared Statements trennen die übergebenen Werte vom eigentlichen SQL-Befehl und sind deshalb für Datenbankzugriffe vorgesehen.

Was ist der Unterschied zwischen INSERT und REPLACE?

INSERT fügt einen neuen Datensatz hinzu. REPLACE kann einen vorhandenen Datensatz mit derselben eindeutigen ID beziehungsweise demselben Primary Key ersetzen.

Wie lese ich Daten aus der Datenbank aus?

Dafür verwendest du einen SELECT-Befehl. Die geladenen Werte kannst du anschließend beispielsweise in PHP-Variablen wie $Title, $Description oder $Image speichern.

Wie gelangen MySQL-Daten in das HTML der Seite?

Du setzt zunächst eigene Platzhalter im HTML-Code und ersetzt diese anschließend mit str_replace() innerhalb von $LayoutHTML durch die geladenen Datenbankwerte.

Wie kann ich prüfen, ob die Verbindung zwischen Datenbank und Webseite funktioniert?

Öffne Datenbank → Anzeigen, ändere einen vorhandenen Datensatz und lade danach die Webseite erneut. Die neuen Werte sollten anschließend direkt im Seitenlayout erscheinen.

Wofür wird UPDATE verwendet?

Mit UPDATE kannst du einen bereits vorhandenen Datensatz direkt über PHP verändern.

Kann ich Bilder aus der Datenbank ebenfalls im Seitenlayout verwenden?

Ja. Im Beispiel wird der Bildwert in der Variablen $Image gespeichert und über einen eigenen Platzhalter wie __MyImage__ in $LayoutHTML eingesetzt.

CMS