PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Simple Datenabfrage per SELECT

20. April 2018
  1. Home
  2. »
  3. MySQL Tutorial
  4. »
  5. Simple Datenabfrage per SELECT

Nachdem ihr die Datenbankverbindung aufbauen habt und diese in der Variable $pdo gespeichert habt, könnt ihr nun mittels der Funktion query($sql) eine Abfrage an die Datenbank senden.

Inhaltsverzeichnis

  • 1 Einfache Tabellenabfrage
  • 2 Daten sortieren
  • 3 Anzahl der Datensätze begrenzen

Einfache Tabellenabfrage

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

$sql = "SELECT email, vorname, nachname FROM users";
foreach ($pdo->query($sql) as $row) {
   echo $row['vorname']." ".$row['nachname']."<br />";
   echo "E-Mail: ".$row['email']."<br /><br />";
}
?>

Zuerst definieren wir unser SQL-Statement zur Abfrage der Datenbank. Dies geht mittels dem SQL-Befehl SELECT . SQL ist, wie in der Einführung zum MySQL Tutorial geschrieben, eine Datenbanksprache mit der wir Befehle an die Datenbank senden, beispielsweise zum Abfragen von Datensätzen oder zum bearbeiten von existenten Daten.

Die Syntax von SELECT ist ziemlich simpel. Zuerst geben wir Spalten an, die wir abfragen möchten, sowie den Tabellennamen. Diesen SQL-Befehl senden wir dann mittels $pdo->query() an die Datenbank. Zurück erhalten wir die Zeilen der Tabelle und können mittels Arrays die Zeilen durchlaufen und die Werte ausgeben. Jede Zeile der Tabelle tabellenname wird dann im Array $row abgespeichert.

Im obigen SQL-Statement haben wir die gewünschten Spalten angegeben. Wir können aber auch alle Spalten abfragen, indem wir ein * verwenden. Möchten wir die Daten aus unserer Nutzertabelle ausgeben, dann können wir dies wie folgt machen:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

$sql = "SELECT * FROM users";
foreach ($pdo->query($sql) as $row) {
   echo $row['vorname']." ".$row['nachname']."<br />";
   echo "E-Mail: ".$row['email']."<br /><br />";
}
?>

Daten sortieren

Möchten wir eine bestimmte Sortierung erreichen, dann können wir dies mittels der Anweisung ORDER BY erreichen.

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

$sql = "SELECT * FROM users ORDER BY vorname";
foreach ($pdo->query($sql) as $row) {
   echo $row['vorname']." ".$row['nachname']."<br />";
   echo "E-Mail: ".$row['email']."<br /><br />";
}
?>

Dies würde die Benutzer nach der Spalte vorname, sprich, dem Vornamen, sortieren. Wir können eine Tabelle auch nach mehreren Spalten sortieren lassen. Möchten wir z.B. erst nach dem Vornamen, dann nach dem Nachnamen sortieren, dann geht dies wie folgt:

1
$sql = "SELECT * FROM users ORDER BY vorname, nachname";

ORDER BY sortiert standardmäßig alphabetisch von klein nach groß, also von 0 nach 9 oder von A nach Z. Möchten wir eine umgekehrte Sortierung haben, dann lässt sich dies mittels der Anweisung DESC erreichen:

1
$sql = "SELECT * FROM users ORDER BY id DESC";

Dieser SQL-Befehl gibt alle Benutzer aus, angefangen beim Benutzer mit der höchsten ID, sprich, dem neuesten Benutzer in unserer Tabelle.

Anzahl der Datensätze begrenzen

Bisher wurden immer alle Datensätze abgefragt. Dies ist bei sehr großen Tabellen mit vielen tausend oder Millionen Einträgen wenig wünschenswert. Dort möchten wir stattdessen oft beispielsweise nur die ersten 100 Einträge abfragen. Dazu können wir die LIMIT Anweisung verwenden.

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

$sql = "SELECT * FROM users ORDER BY vorname LIMIT 3";
foreach ($pdo->query($sql) as $row) {
   echo $row['vorname']." ".$row['nachname']."<br />";
   echo "E-Mail: ".$row['email']."<br /><br />";
}
?>

Bei diesem Statement fragen wir unsere Nutzertabelle ab, sortiert nach dem Vornamen. Und wir erhalten hier nur drei Tabelleneinträge zurück. Statt drei könnt ihr auch jede beliebige andere Anzahl verwenden.

Falls ihr nicht unbedingt an den ersten drei Einträgen interessiert seid, sondern vielleicht an den Einträgen 5 bis 8, dann könnt ihr dies auch über LIMIT lösen:

1
$sql = "SELECT * FROM users ORDER BY vorname LIMIT 5, 3";

Hier geben wir zuerst einen Offset an, in diesem Fall die 5. Das bedeutet, MySQL wird die ersten 5 Einträge überspringen und euch dann 3 Einträge zurückliefern.

Autor: Nils Reimers
Zurück: Datenbankverbindung aufbauen
Weiter: Komplexere Datenabfrage per SELECT

MySQL Tutorial

  • MySQL installieren und starten
  • phpMyAdmin
  • Verbindung aufbauen
  • Simple Datenabfrage
  • Komplexere Datenabfrage
  • Prepared Statements
  • Daten einfügen
  • Daten aktualisieren
  • Daten löschen
  • Gefundene Einträge zählen
  • DATE-Datenbankspalten
  • Datum- und Zeitfunktionen
  • MySQL Fehlermeldungen
  • Datenbankverbindung schließen
  • JOIN
  • Indizes
  • Normalformen
  • Fremdschlüssel
  • Übersicht SQL-Befehle
  • Crashkurs MySQL
  • Crashkurs MySQLi
  • Crashkurs PDO
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur

Hoster – Geringste Ausfallzeit

  1. netcup Ø 0 Min.
  2. webgo Ø 0 Min.
  3. Linevast Ø 3 Min.
  4. All-Inkl.com Ø 3 Min.
  5. checkdomain Ø 4 Min.
  6. dogado Ø 6 Min.
  7. Strato Ø 8 Min.
  8. manitu Ø 10 Min.
  9. 1&1 Ø 10 Min.
  10. DomainFactory Ø 14 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2025

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}