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

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. 

Bugün bir iyilik yap, mesela bu yazıyı paylaş :

SİZİN İÇİN ÖNERİLEN YAZILAR

YORUMLAR

  1. profil Halil ışık dedi ki:

    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 YILDIRIM dedi ki:

      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.

Yorum yap

Geçersiz bir mail adresi girdiniz. Lütfen tüm zorunlu alanları doldurun. *