Mit PHP Informationen aus einer MySQL/MariaDB-Datenbank abrufen
PHP ist so konzipiert, dass es sich leicht in eine Website integrieren lässt. Eine der häufigsten Anwendungen für PHP ist es, Inhalte aus einer Datenbank zu übernehmen und auf einer HTML-Seite auszugeben. Dieses Tutorial behandelt die Verbindung zu einer MySQL/MariaDB-Datenbank, das Herausziehen von Informationen aus einer einfachen Tabelle und die Anzeige in einer einfachen HTML-Tabelle.
Anforderungen
- Ein Cloud Server unter Linux (jede Distribution)
- Apache, MySQL/MariaDB und PHP installiert und ausgeführt
Apache, MySQL/MariaDB und PHP sind standardmäßig auf einer Standard-Linux-Installation installiert und laufen dort. Wenn Ihr Server mit einer Minimalinstallation erstellt wurde, müssen Sie Apache, MySQL/MariaDB und PHP installieren und konfigurieren, bevor Sie fortfahren können.
Erstellen der MySQL/MariaDB-Datenbank und des Benutzers
Für dieses Tutorial werden wir eine Webseite für ein imaginäres Restaurant erstellen. Auf der Webseite werden Kundenbewertungen des Restaurants angezeigt.
Melden Sie sich am MySQL/MariaDB-Client der Befehlszeile an:
mysql -u root -p
Erstellen Sie eine Datenbank für die Reviews:
CREATE DATABASE reviews;
Wechseln Sie zu dieser Datenbank:
USE reviews;
Für dieses Beispiel werden wir nur eine Tabelle erstellen. Es wird drei Felder haben:
- Ein ID-Feld: Dies wird auf Auto-Inkrement gesetzt.
- Name des Prüfers: Ein Textfeld mit einer Länge von 100 Zeichen.
- Eine Sternenbewertung: Eine numerische Bewertung von 1-5 TINYINT
- Überprüfen Sie die Details: Ein Textfeld mit einer Grenze von ca. 500 Wörtern. VARCHAR(4000)
Erstellen Sie die Tabelle:
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name CHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);
Füge zwei Beispielrezensionen zur Tabelle hinzu:
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', '5', 'Love the calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', '1', 'Calzones are the worst.');
Legen Sie einen Benutzer für die Datenbank an. Aus Sicherheitsgründen ist es immer am besten, für jede Datenbank einen eindeutigen Benutzer anzulegen, insbesondere wenn von einer Website aus auf diese Datenbank zugegriffen wird.
Der folgende Befehl erstellt eine user review_site mit dem Passwort JxSLRkdutW und gewährt dem Benutzer Zugriff auf die Revisions-Datenbank:
GRANT ALL ON reviews.* to review_site@localhost IDENTIFIED BY 'JxSLRkdutW';
Erstellen Sie das PHP-Skript
Der Code in diesem Tutorial ist vereinfacht, um Beispiele zu zeigen. Bei der Erstellung einer Website empfehlen wir Ihnen dringend, die besten Sicherheitspraktiken zu befolgen, um sicherzustellen, dass Ihre PHP-Skripte den Zugriff auf den Server nicht einschränken.
Erstellen Sie eine Datei showreviews.php in Ihrem Webspace und öffnen Sie sie zur Bearbeitung. Um beispielsweise die Datei in /var/wwww/html zu erstellen, lautet der Befehl:
sudo nano /var/www/html/showreviews.php
Zum Beispiel wird auf dieser Seite PHP in das HTML eingebettet sein, so dass die Seite mit den grundlegenden HTML-Deklarationen beginnt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
Jedes PHP-Skript muss mit dem Tag PHP opening beginnen:
<?php
Als nächstes fügen Sie einen MySQL/MariaDB-Verbindungsblock mit dem Serverstandort (localhost), dem Datenbanknamen sowie dem Datenbank-Benutzernamen und -Passwort hinzu.
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
Dann fügen wir einen Abschnitt hinzu, um eine Verbindung zur Datenbank herzustellen, und geben einen Fehler an, wenn die Verbindung fehlschlägt:
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if ($dbconnect->connect_error) {
die("Database connection failed: " . $dbconnect->connect_error);
}
?>
Als nächstes fügen Sie das HTML hinzu, um die Tabelle zu beginnen, die wir zur Anzeige der Daten verwenden werden:
<table border="1" align="center">
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
Danach folgt der PHP-Code, der die Datenbank abfragt und die Ergebnisse durchläuft und jeden Review in einer eigenen Tabellenzeile anzeigt:
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>;
}
?>
Und schließlich, schließen Sie die Tabelle und das HTML aus:
</table>
</body>
</html>
Um das Skript zu testen, besuchen Sie showreviews.php in einem Browser.
Das vollständige PHP-Skript lautet:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect=mysqli_connect($hostname,$username,$password,$db);
if ($dbconnect->connect_error) {
die("Database connection failed: " . $dbconnect->connect_error);
}
?>
<table border="1" align="center">
<tr>
<td>Reviewer Name</td>
<td>Stars</td>
<td>Details</td>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die (mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo
"<tr>
<td>{$row['reviewer_name']}</td>
<td>{$row['star_rating']}</td>
<td>{$row['details']}</td>
</tr>\n";
}
?>
</table>
</body>
</html>
- On-Demand skalierbar, Load Balancer und Traffic inklusive
- Hochverfügbare Server-Plattform
- ISO-zertifizierte Rechenzentren am Standort Deutschland
- Inkl. 100,- € Startguthaben im 1. Monat