h1

[PHP] – Navigate to previous and next row from current row

August 3, 2008

Terinspirasi dari posting vandai tentang PHP-MySql: Select previous row and next row from current ID tentang bagaimana cara bernavigasi dari row saat ini ke row selanjutnya dan sebelumnya. Berikut solusi dari vandai :

Go to previous row :

SELECT field1
FROM tablename
WHERE id < $currentid
ORDER BY id DESC
LIMIT 1

Go to next row :

SELECT field1
FROM tablename
WHERE ID > $currentid
ORDER BY id ASC
LIMIT 1

Solusi yang bagus dan efisien untuk menghemat resource database server. Namun bagaimana jika field ID bukan bertipe data numerik (integer, float, dll) ?

Ada satu solusi, sedikit lebih ribet memang, tapi bisa diterapkan untuk semua tipe data. Langkah2nya :

1. Harus diketahui dulu pada row keberapa posisi data yang saat ini ditampilkan.
2. Simpan posisi row ke variabel misal $currentRow

selanjutnya kode seperti berikut :

$goNext = $currentRow + 1;
$goPrev = $currentRow - 1;

kemudian link untuk navigasinya jadi seperti ini :

<a href="show.php?$currentRow=$goPrev">Prev</a><a href="show.php?$currentRow=$goNext">Next</a>

gunakan passing variabel $currentRow dari navigasi untuk query berikut :

SELECT * FROM something LIMIT $currentRow, 1

Dengan cara ini query akan melakukan select terhadap data dimulai dari row $currentRow dan di-limit 1 data. Dimana nilai $currentRow adalah posisi row setelah dikurangi atau ditambah 1 dari posisi row data sebelumnya.

5 comments

  1. nicee…
    tapi ga pake ORDER BY tuh?
    kan keluarannya pasti random.


  2. ah betul juga, ORDER BY…

    biasanya secara default udah di-order berdasarkan field pertama…tp lebih bagus jg kalo dikasih ORDER BY.

    thanks atas koreksinya😀


  3. Hello webmaster
    I would like to share with you a link to your site
    write me here preonrelt@mail.ru


  4. contoh implementasinya gimana ?
    masih belum mudeng nih… hehehe


  5. Bener itu gan, tapi masalahnya buat tau kita ada Row keberaapa querynya gimana?



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: