Home » PHP » Cara Menggunakan Klausa Where di PHP MySQL

Cara Menggunakan Klausa Where di PHP MySQL

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Select dan Filter Data Dari Database MySQL

Klausa WHERE digunakan untuk memfilter rekaman.

Klausa WHERE digunakan untuk mengekstrak hanya rekaman yang memenuhi kondisi tertentu.

SELECT column_name(s) FROM table_name WHERE column_name operator value 

Select dan Filter Data Dengan MySQLi

Contoh berikut memilih kolom id, firstname dan lastname dari tabel MyGuests dengan nama belakang “Doe”, dan menampilkannya di halaman:

Contoh (MySQLi Object-oriented) :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Buat Koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Periksa Koneksi
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) {
  // data keluaran dari setiap baris
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

  //Output : id: 1 - Name: John Doe

Penjelasan Kode :

Pertama, kita siapkan kueri SQL yang memilih kolom id, firstname dan lastname dari tabel MyGuests dengan lastname adalah “Doe”. Baris kode berikutnya menjalankan kueri dan memasukkan data yang dihasilkan ke dalam variabel yang disebut $result.

Kemudian, function num_rows() akan memeriksa apakah ada lebih dari nol baris yang dikembalikan.

Jika ada lebih dari nol baris yang dikembalikan, fungsi fetch_assoc() menempatkan semua hasil ke dalam array asosiatif yang bisa kita putar. Perulangan while() melewati set hasil dan mengeluarkan data dari kolom id, firstname dan lastname.

Contoh berikut menunjukkan hal yang sama seperti contoh di atas, dengan cara prosedural MySQLi:

Contoh (MySQLi Prosedural) :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Buat Koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Periksa Koneksi
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) {
  // data keluaran dari setiap baris
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}

mysqli_close($conn);
?>

    //Output : id: 1 - Name: John Doe

Kita juga bisa meletakkan hasilnya di tabel HTML:

Contoh (MySQLi Object-oriented) :

<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
}
</style>
</head>
<body>

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Buat Koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Periksa Koneksi
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>";
  // data keluaran dari setiap baris
  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();
?>

</body>
</html>

Select Data Dengan PDO (+ Pernyataan Prepare)

Contoh berikut menggunakan pernyataan prepare.

Ini memilih kolom id, firstname dan lastname 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();

  // atur larik yang dihasilkan ke asosiatif
  $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>";
?>

You may also like