PHP MySQL Menggunakan Klausa WHERE
Pilih dan Filter Data Dari Database MySQL
Klausa WHERE digunakan untuk memfilter record.
Klausa WHERE digunakan untuk mengekstrak hanya record yang memenuhi kondisi tertentu.
SELECT column_name(s)
FROM table_name WHERE column_name operator value
Untuk mempelajari lebih lanjut tentang SQL, silakan kunjungi tutorial SQL kami .
Pilih dan Filter Data Dengan MySQLi
Contoh berikut memilih kolom id, nama depan dan nama belakang dari tabel MyGuests di mana nama belakang adalah "Doe", dan menampilkannya di halaman:
Contoh (MySQLi Berorientasi objek)
<?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();
?>
Baris kode untuk menjelaskan dari contoh di atas:
Pertama, kami menyiapkan kueri SQL yang memilih kolom id, nama depan, dan nama belakang dari tabel MyGuests dengan nama belakang "Doe". Baris kode berikutnya menjalankan kueri dan memasukkan data yang dihasilkan ke dalam variabel yang disebut $result.
Kemudian, function num_rows()
memeriksa apakah ada lebih dari nol baris yang dikembalikan.
Jika ada lebih dari nol baris yang dikembalikan, fungsi tersebut fetch_assoc()
menempatkan semua hasil ke dalam larik asosiatif yang dapat kita ulangi. Perulangan while()
loop melalui kumpulan hasil dan mengeluarkan data dari kolom id, nama depan dan nama belakang.
Contoh berikut menunjukkan sama seperti contoh di atas, dengan cara prosedural MySQLi:
Contoh (Prosedural MySQLi)
<?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);
?>
Anda juga dapat meletakkan hasilnya dalam tabel HTML:
Contoh (MySQLi Berorientasi objek)
<?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();
?>
Pilih Data Dengan PDO (+ Pernyataan yang Disiapkan)
Contoh berikut menggunakan pernyataan yang disiapkan.
Ini memilih kolom id, nama depan dan nama belakang dari tabel MyGuests di mana nama belakangnya adalah "Doe", dan menampilkannya dalam tabel HTML:
Contoh (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>";
?>