Merhabalar, yazılımlarımızı yaptığımız sırada bazen farklı sorguları düşünerek işimize yarama ihtimali olmaktadır. Günümüz de bir çok kişi tarafından kullanılan PHP web programlama dilinde veri tabanı MYSQL olarak kullanılırız.
Bu yazımızda sizlere tablolarımızda bulunan önceki ve sonraki kayıtı tek seferde alabileceğimiz bir sorguyu sizlere sunacağım. Sorguya baktığımız da çok karışık gibi gelsede ufak bir göz gezdirdiğiniz de aslında basit olduğunu sizler de anlayacaksınız.
Normal şartlarda önceki ve sonraki kayıtları getirebilmek için 3 farklı sorgu işlemi yapmak zorunda kalırız. Yalnız hemen aşağıda verdiğim kodda sizlere tek seferde çıktıyı verecektir.
SELECT @a := 1, ( SELECT id FROM tablomuz WHERE id < @a ORDER BY id DESC LIMIT 1 ) AS prev_id, ( SELECT id FROM tablomuz WHERE id > @a ORDER BY id ASC LIMIT 1 ) AS next_id FROM tablomuz LIMIT 1
Yukarıda bulunan tablomuz olan kısmını kendinize göre düzenleyiniz.
Sorgumuzu bu şekilde kullandığımız zaman ‘prev_id’ ve ‘next_id’ alanlarında gelecek sonuçlar bir önceki ve sonraki kayıtları getirecektir. @a:=1 ifadesinin kullanıcının çekmek istediği kayıtın id numarası olarak seçiyoruz. Örnek verecek olursak 15 numaralı kayıt ise @a:=15 olarak yapıyoruz.
Php kodu olarak ise;
@a := ".$id."
şeklinde işleme devam edebilirsiniz.
Herkese iyi yazılımlar dilerim.