WebImpressionen
Where

Datensätze filtern mit WHERE

Die WHERE-Klausel wird verwendet, um nur die Datensätze zu extrahieren, die eine bestimmte Bedingung erfüllen.

Die grundlegende Syntax der WHERE-Klausel kann wie folgt angegeben werden:

SELECT spalten_name(n) FROM tabellen_name WHERE Spaltenname Operatorwert

Erstellen einer SQL-Abfrage mit der WHERE-Klausel in der SELECT-Anweisung.
Abfrage ausführen, indem sie an die php-Funktion "mysqli-query" übergeben wird, um die gefilterten Daten 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 folgende php-Code wählt alle Zeilen aus der Tabelle "personen" aus, in der der "vor_name" = 'Peter' ist:

 
<?php
// Verbindung zur Datenbank einfügen
1
$sql = " SELECT * FROM personen WHERE vor_name = ' Peter ' ";
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 WHERE vor_name = ' Peter ' ";
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 () ;
 
?>

Nach der Filterung sieht die Ausgabe etwa so aus:

IDVornameNameeMail
1PeterMaierpetermaier@mail.de
4PeterMayerpetermayer@mail.de