PHP MySQL Verwenden Sie die WHERE-Klausel
Daten aus einer MySQL-Datenbank auswählen und filtern
Die WHERE-Klausel wird zum Filtern von Datensätzen verwendet.
Die WHERE-Klausel wird verwendet, um nur die Datensätze zu extrahieren, die eine bestimmte Bedingung erfüllen.
SELECT column_name(s)
FROM table_name WHERE column_name operator value
Um mehr über SQL zu erfahren, besuchen Sie bitte unser SQL-Tutorial .
Daten mit MySQLi auswählen und filtern
Im folgenden Beispiel werden die Spalten „id“, „firstname“ und „lastname“ aus der Tabelle „MyGuests“ ausgewählt, wobei der Nachname „Doe“ lautet, und auf der Seite angezeigt:
Beispiel (MySQLi objektorientiert)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE
lastname='Doe'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Codezeilen zur Erläuterung aus dem obigen Beispiel:
Zuerst richten wir die SQL-Abfrage ein, die die Spalten „id“, „firstname“ und „lastname“ aus der Tabelle „MyGuests“ auswählt, wobei der Nachname „Doe“ lautet. Die nächste Codezeile führt die Abfrage aus und fügt die resultierenden Daten in eine Variable namens $result ein.
Dann wird function num_rows()
überprüft, ob mehr als null Zeilen zurückgegeben werden.
Wenn mehr als null Zeilen zurückgegeben werden, fügt die Funktion fetch_assoc()
alle Ergebnisse in ein assoziatives Array ein, das wir durchlaufen können. Die while()
Schleife durchläuft die Ergebnismenge und gibt die Daten aus den Spalten id, firstname und lastname aus.
Das folgende Beispiel zeigt dasselbe wie das obige Beispiel auf die prozedurale Weise von MySQLi:
Beispiel (MySQLi-Prozedur)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests
WHERE lastname='Doe'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
Sie können das Ergebnis auch in eine HTML-Tabelle einfügen:
Beispiel (MySQLi objektorientiert)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE
lastname='Doe'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
Daten mit PDO auswählen (+ vorbereitete Anweisungen)
Das folgende Beispiel verwendet vorbereitete Anweisungen.
Es wählt die Spalten „id“, „firstname“ und „lastname“ aus der Tabelle „MyGuests“ aus, wobei der Nachname „Doe“ lautet, und zeigt sie in einer HTML-Tabelle an:
Beispiel (PDO)
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests
WHERE lastname='Doe'");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>