WebImpressionen
Select

Auswählen von Daten mit SELECT

Mit der SQL SELECT-Anweisung werden Datensätze aus Datenbanktabellen ausgewählt.

Die grundlegende Syntax der SELECT-Anweisung kann wie folgt angegeben werden:

SELECT spalte1_name, spalte2_name, spalte3_name FROM tabellen_name;

Erstellen einer SQL-Abfrage mit der SELECT-Anweisung.
SQL-Abfrage ausführen, indem sie an die entsprechende php-Funktion "mysqli-query" übergeben wird, um die Tabellendaten abzurufen.

Unsere Datenbanktabelle "personen" enthält die folgenden Datensätze:

    0    spalte1   spalte2         spalte3
 +----+----------+---------+--------------------+
 | id | vor_name | name    | mail               |
 +----+----------+---------+--------------------+
 |  1 | Peter    | Maier   | petermaier@mail.de |
 |  2 | Udo      | Schmidt | udoschmidt@mail.de |
 |  3 | Frank    | Meier   | frankmeier@mail.de |
 |  4 | Peter    | Mayer   | petermayer@mail.de |
 |  5 | Hans     | Schmid  | hansschmid@mail.de |
 +----+----------+---------+--------------------+

Der php-Code im folgenden Beispiel wählt alle in der Tabelle "personen" gespeicherten Daten aus.
Mit dem Sternchen (*) anstelle des Spaltennamens werden alle Daten in der Tabelle ausgewählt.

 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " SELECT * FROM personen";
2
if ( $result = mysqli_query ( $link, $sql )) {
3
if ( mysqli_num_rows ( $result ) > 0 ) {
4
echo "<table>";
5
echo "<tr>";
6
echo "<th>Id</th>";
7
echo "<th>Vorname</th>";
8
echo "<th>Name</th>";
9
echo "<th>eMail</th>";
10
echo "</tr>";
11
while ( $row = mysqli_fetch_array ( $result )) {
12
echo "<tr>";
13
echo "<td>" . $row [ 'id' ] . "</td>";
14
echo "<td>" . $row [ 'vor_name' ] . "</td>";
15
echo "<td>" . $row [ 'name' ] . "</td>";
16
echo "<td>" . $row [ 'mail' ] . "</td>";
17
echo "</tr>";
18
}
19
echo "</table>";
20
mysqli_free_result ( $result );
21
} else {
22
echo " Es wurden keine Datensätze gefunden. ";
23
}
24
} else {
25
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . mysqli_error ( $link );
26
}
27
mysqli_close ( $link ) ;
 
?>
 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " SELECT * FROM personen";
2
if ( $result = $mysqli -> query ( $sql )) {
3
if ( $result -> num_rows > 0 ) {
4
echo "<table>";
5
echo "<tr>";
6
echo "<th>Id</th>";
7
echo "<th>Vorname</th>";
8
echo "<th>Name</th>";
9
echo "<th>eMail</th>";
10
echo "</tr>";
11
while ( $row = $result -> fetch_array () ) {
12
echo "<tr>";
13
echo "<td>" . $row [ 'id' ] . "</td>";
14
echo "<td>" . $row [ 'vor_name' ] . "</td>";
15
echo "<td>" . $row [ 'name' ] . "</td>";
16
echo "<td>" . $row [ 'mail' ] . "</td>";
17
echo "</tr>";
18
}
19
echo "</table>";
20
$result -> free();
21
} else {
22
echo " Es wurden keine Datensätze gefunden. ";
23
}
24
} else {
25
echo " FEHLER: " . $sql . " konnte nicht ausgeführt werden. " . $mysqli -> error ;
26
}
27
$mysqli -> close () ;
 
?>

Die Ausgabe sieht etwa so aus:

IDVornameNameeMail
1PeterMaierpetermaier@mail.de
2UdoSchmidtudoschmidt@mail.de
3FrankMeierfrankmeier@mail.de
4PeterMayerpetermayer@mail.de
5HansSchmidhansschmid@mail.de

Die while-Schleife dient zum Durchlaufen aller Zeilen in der Ergebnismenge.
Schließlich kann auf den Wert eines einzelnen Feldes von der Zeile aus zugegriffen werden,
indem entweder der Feldindex oder der Feldname an die Variable $row übergeben wird, z. B.:
$row['id'] oder $row[0], $row['vor_name'] oder $row[1], $row['name'] oder $row[2] und $row['mail'] oder $row[3].

Wenn die for-Schleife verwendet wird,
kann der Wert des Schleifenzählers oder die Anzahl der von der Abfrage zurückgegebenen Zeilen ermittelt werden,
indem die Variable $result an die Funktion "num_rows ()" übergeben wird.
Dieser Schleifenzähler bestimmt, wie oft die Schleife ausgeführt werden soll.