ASP ile veritabanından bir önceki ve bir sonraki kaydı çekmek

ASP ile veritabanından bir önceki ve bir sonraki kaydı çekmek

Birçok haber sitesinde veya sürükleyici içerik barındıran portal sitelerinde kullanılan ve ziyaretçiyi içeride oyalamak, gezdirmek amaçlı kullanılan bir strateji olan Önceki kayıt veSonraki kayıt'ın nasıl yapıldığını öğreneceğiz. 

Öncelikle şunu söylemekte fayda var, veritabanından bir önceki ve bir sonraki kaydı aktif kayıt id'sine bağımlı olarak id+1 ve id-1 yaparak önceki ve sonraki kaydı çekebiliriz. Lakin, aradaki bir kayıt silinmiş ise, o kaydı gösteremeyecektir. O yüzden bu tezimiz çöp oluyor ve hemen bu problemin çözümünü ve bu modülü nasıl hayata geçireceğimizi sizlere anlatıyorum.

Yaptığımızı mantıksal olarak anlatacak olursak; sonraki içeriği çekmek için id si aktif id den küçük olan kayıtların en son eklenenini seçiyoruz, ve önceki içerik içinse id si aktif id den büyük olan ilk eklenmiş içeriği çekiyoruz. Böylece ASP de veritabanından bir kayıtiçerisinde o kayıttan önceki ve sonraki kaydı gösterebiliyor ve bizde o kaydın adını, resmini vs gösterip detay sayfasına link verebiliyoruz.

Veritabanı bağlantımız (MySQL), (Siz access bağlantınızı da girebilirsiniz. Değişen birşey olmayacaktır.) :

<%
mysql_server = "localhost"
mysql_db = "veritabani_adi"
mysql_user = "kullanici_adi"
mysql_pass = "parola"

Set baglanti = Server.createObject("Adodb.Connection")
baglanti.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & mysql_server & "; UID=" & mysql_user & "; pwd=" & mysql_pass & "; db=" & mysql_db & ";" 
%>


Aşağıdaki kodlarda aktifid diye belirttiğimiz id numarası o an görüntülenen kayda ait id'dir.

Sonraki İçerik:

<%
Set rs = baglanti.Execute("Select * From tablo where id > " & aktifid & "")
if not rs.eof then
response.write("Bu satıra sonraki resimle ilgili bilgileri yazdırabilirsiniz")
rs.close
set rs = nothing
end if
%>


Önceki İçerik:

<%
Set rs = baglanti.Execute("Select * From tablo where id < " & aktifid & " order by id desc")
if not rs.eof then
response.write("Bu satıra önceki resimle ilgili bilgileri yazdırabilirsiniz")
rs.close
set rs = nothing
end if
%>


Umarım faydalı olmuştur. 

Hafzullah Yıldırım

Merhaba. Ben Hafzullah! Kocaeli'de yaşayan bir yazılım geliştiriciyim. 12 yıldır doğrudan sektörün içerisindeyim. Şu anda Hafzullah.com.tr yazılım firmasının kurucusuyum. İş hayatım, örgün eğitim gören bir üniversite öğrencisiyken başladı. Freelance çalışan olarak birçok web ve masaüstü projesi içerisinde yer aldım. Düzenli olarak ekibim ile altında imzam olan-olacak projeler geliştiriyoruz.

Toplam 1 Yorum

Halil ışık
Halil ışık

30.09.2015 16:46:09

Kodları kontrol edersen sonraki içeriğe giden kod databasdeki ilk kayıda gidiyor ve sürekli aynı kayıt çıkıyor sonraki kod ise artacağına azalıyor teşkürler

Hafzullah Yıldırım
Hafzullah Yıldırım

30.09.2015 16:46:09

Merhabalar Halil ışık; Kodlar kesinlikle doğru işliyor, deneyerek görebilirsin. "aktifid" olarak belirttiğimiz veritabanında o sayfadaki id dir. O id nin üst ve altındaki kodları çekmek için #Küçüğün en büyüğü# ve #Büyüğün en küçüğü# mantığı ile işler kodlar. Teşekkürler.

Sende Yorum Yap

Benzer Yazılar