Limit dan Offset

Untuk membatasi banyaknya data dalam hasil pencarian, kita bisa menggunakan limit. Limit bisa digunakan sendiri maupun dipasangkan dengan klausa offset. Sintaks limit adalah sebagai berikut.

  • {Statement select} Limit awal, {jumlah data}
  • {Statement select} Limit {jumlah data} Offset awal

Sebelum mencoba menggunakan Limit dan offset, buat databasenya terlebih dahulu. Misalnya nama databasenya adalah dbku, dan tabelnya adalah tabelku. Anggap saja isi tabelnya seperti di bawah ini.

NamaHarga
Pensil2000
Pulpen5000
Buku10000

Setelah database dan tabel dibuat, ketik script seperti di bawah ini.

<html>
<head>
    <title>coba</title>
    <style>
      table, td, th{
         border:1px solid black;
         border-collapse:collapse;
      }
    </style>
</head>
<body>
    <table>
        <?php 
            $koneksi=mysqli_connect("localhost", "root", "");
            mysqli_select_db($koneksi, "dbku");
            $hasil=mysqli_query($koneksi, "select * from tabelku Limit 0, 10");
            while($a=mysqli_fetch_array($hasil)){
                echo("<tr>");
                echo("<td>".$a['Nama']."</td>");
                echo("<td>".$a['Harga']."</td>");
                echo("</tr>");
            }
            mysqli_close($koneksi);
        ?>
    </table>
</body>
</html>

Hasilnya seharusnya menampilkan data sebanyak 10 dari data yang paling awal. Itu karena data pertama offsetnya bernilai 0. Jika kalian ingin menampilkan data ke-2 dengan hasil maksimal sebanyak 20 data, kalian bisa mengubahnya seperti di bawah ini.

<html>
<head>
    <style>
      table, td, th{
         border:1px solid black;
         border-collapse:collapse;
      }
    </style>
</head>
<body>
    <table>
        <?php 
            $koneksi=mysqli_connect("localhost", "root", "");
            mysqli_select_db($koneksi, "dbku");
            $hasil=mysqli_query($koneksi, "select * from tabelku Limit 1, 20");
            while($a=mysqli_fetch_array($hasil)){
                echo("<tr>");
                echo("<td>".$a['Nama']."</td>");
                echo("<td>".$a['Harga']."</td>");
                echo("</tr>");
            }
            mysqli_close($koneksi);
        ?>
    </table>
</body>
</html>

Offset atau titik awal pencarian dalam sql dimulai dari 0. Jadi pada contoh di atas query menggunakan angka 1 sebagai offset saat menampilkan data ke-2 sebagai data pertama. Offset bisa ditulis sebagai angka pertama dari limit atau bisa juga ditulis dengan menggunakan klausa offset. Saat menggunakan ofsset dalam mysql, kita wajib menyertakan klausa limit.

<html>
<head>
    <style>
      table, td, th{
         border:1px solid black;
         border-collapse:collapse;
      }
    </style>
</head>
<body>
    <table>
        <?php 
            $koneksi=mysqli_connect("localhost", "root", "");
            mysqli_select_db($koneksi, "dbku");
            $hasil=mysqli_query($koneksi, "select * from tabelku Limit 20 Offset 1");
            while($a=mysqli_fetch_array($hasil)){
                echo("<tr>");
                echo("<td>".$a['Nama']."</td>");
                echo("<td>".$a['Harga']."</td>");
                echo("</tr>");
            }
            mysqli_close($koneksi);
        ?>
    </table>
</body>
</html>