PHP MySQL : Limit Clause

Limiting Result Set

Klausa LIMIT digunakan untuk membatasi jumlah baris yang dikembalikan oleh pernyataan SELECT. Fitur ini sangat membantu untuk mengoptimalkan waktu pemuatan halaman serta agar situs web dapat lebih terbaca. Misalnya, kalian dapat membagi sejumlah besar record dalam beberapa halaman menggunakan pagination, di mana jumlah record yang terbatas akan dimuat pada setiap halaman dari database ketika pengguna meminta halaman itu dengan mengklik tautan pagination.

Sintaks dasar klausa LIMIT dapat diberikan dengan:

Klausa LIMIT menerima satu atau dua parameter yang harus berupa bilangan bulat negatif:

  • Ketika dua parameter ditentukan, parameter pertama menentukan offset dari baris pertama untuk mengembalikan yaitu titik awal, sedangkan parameter kedua menentukan jumlah baris yang akan dikembalikan. Offset baris pertama adalah 0 (bukan 1).
  • Sedangkan, ketika hanya satu parameter yang diberikan, itu menentukan jumlah maksimum baris untuk kembali dari awal result set.

Misalnya, untuk mengambil tiga baris pertama, kalian dapat menggunakan kueri berikut:

Untuk mengambil baris 2-4 (inklusif) dari rangkaian hasil, kalian dapat menggunakan kueri berikut:

Mari kita membuat query SQL menggunakan klausa LIMIT dalam pernyataan SELECT, setelah itu kita akan mengeksekusi query ini dengan mengirimkannya ke fungsi PHP mysqli_query() untuk mendapatkan jumlah record yang terbatas. Pertimbangkan tabel persons berikut di dalam basis data demo:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | peterparker@mail.com |
|  2 | John       | Rambo     | johnrambo@mail.com   |
|  3 | Clark      | Kent      | clarkkent@mail.com   |
|  4 | John       | Carter    | johncarter@mail.com  |
|  5 | Harry      | Potter    | harrypotter@mail.com |
+----+------------+-----------+----------------------+

Kode PHP dalam contoh berikut hanya akan menampilkan tiga baris dari tabel persons.

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Attempt select query execution
$sql = "SELECT * FROM persons LIMIT 3";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Close result set
        mysqli_free_result($result);
    } else{
        echo "No records matching your query were found.";
    }
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
// Close connection
mysqli_close($link);
?>

Setelah membatasi hasil yang telah diset, output akan terlihat seperti ini:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | peterparker@mail.com |
|  2 | John       | Rambo     | johnrambo@mail.com   |
|  3 | Clark      | Kent      | clarkkent@mail.com   |
+----+------------+-----------+----------------------+