PHP MySQL Gebruik de WHERE-clausule
Selecteer en filter gegevens uit een MySQL-database
De WHERE-component wordt gebruikt om records te filteren.
De WHERE-component wordt gebruikt om alleen die records te extraheren die aan een opgegeven voorwaarde voldoen.
SELECT column_name(s)
FROM table_name WHERE column_name operator value
Bezoek onze SQL-tutorial voor meer informatie over SQL .
Selecteer en filter gegevens met MySQLi
In het volgende voorbeeld worden de kolommen id, voornaam en achternaam geselecteerd uit de MyGuests-tabel waar de achternaam "Doe" is, en geeft deze weer op de pagina:
Voorbeeld (MySQLi objectgeoriënteerd)
<?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();
?>
Coderegels om uit het bovenstaande voorbeeld uit te leggen:
Eerst stellen we de SQL-query in die de kolommen id, firstname en lastname selecteert uit de MyGuests-tabel waar de achternaam "Doe" is. De volgende regel code voert de query uit en plaatst de resulterende gegevens in een variabele met de naam $result.
Vervolgens wordt function num_rows()
gecontroleerd of er meer dan nul rijen zijn.
Als er meer dan nul rijen worden geretourneerd, fetch_assoc()
plaatst de functie alle resultaten in een associatieve array die we kunnen doorlopen. De while()
lus loopt door de resultatenset en voert de gegevens uit de kolommen id, firstname en lastname uit.
Het volgende voorbeeld toont hetzelfde als het bovenstaande voorbeeld, op de MySQLi procedurele manier:
Voorbeeld (MySQLi procedureel)
<?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);
?>
U kunt het resultaat ook in een HTML-tabel plaatsen:
Voorbeeld (MySQLi objectgeoriënteerd)
<?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();
?>
Selecteer gegevens met BOB (+ voorbereide verklaringen)
In het volgende voorbeeld worden voorbereide instructies gebruikt.
Het selecteert de kolommen id, voornaam en achternaam uit de MyGuests-tabel waar de achternaam "Doe" is, en geeft deze weer in een HTML-tabel:
Voorbeeld (BOB)
<?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>";
?>