Wordpressdeki gibi Konularda Önceki-Sonraki Linki Yapımı (Asp)
Hani bir veritabaniniz vardir. Siz bir kaydi çagirirsiniz ve ekrana basarsiniz. Bu kaydin altindada önceki yada sonraki kayda link vermek istersiniz. Peki sonraki kaydin hangisi oldugunu nasil bileceksiniz. Eger kayitlariniz id sirasina göre ilerliyorsa bunu o andaki id e 1 ekleyerek yada çikararak yapabilirsiniz. Peki ama arada bazi kayitlar deneme amaçli yada yaptiginiz uygulama geregi eksikse.
Iste bu uygulamada bunu çözüme kavusturuyoruz.Buyrun beraber yapalim.
<%
´veritabanimizda id isimli bir anahtar sütun
´oldugu ve islemlerinizi bu alan üzerinden
´yürüttügünüz varsayilmistir.
´Veritabanimiza Connection saglayip açiyoruz.
Set Conn = Server.CreateObject(”ADODB.Connection“)
Conn.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=”&Server.Mappath(”data.mdb“)&”"
´Adres satirindan gelen ve sayfanin
´o andaki ID sini veren degeri aliyoruz.
GelenID = Request.QueryString(”SimdikiID“)
´Eylemi belirliyoruz. Ilerimi gidecez gerimi gelecez”
Eylem = Request.QueryString(”eylem“)
´Eger sayfa ilk defa açildiysa yada adres satiri bossa
´yada sayisal degilse GelenID´mize 0 degeri atiyoruz.
If GelenID = “” OR IsNumeric(GelenID) = False Then
GelenID = 0
End If
´Serveri yormamak ve daha hizli islem yapmak için sadece
´id lerden bir kayit seti olusturuyoruz.
Set rs = Conn.Execute(”Select id From data“)
´Ylk ID´mizi ö?reniyoruz ki linklerimizi verirken i?imize yarayacak.
ilkID = rs(”id“)
´Ve danaya aci verip kuyrugunu kopardigimiz bölüm :))
´id´leri döndürüyoruz. Bizim GelenID miz bu id´ye
´esit oldugunda sira numarasini belirliyoruz.
´yani bizim GelenID´miz aslinda veritabanindaki
´kaçinci kayitmis. Yazik oldu danaya. :))
i = 0
Do While not rs.Eof
If rs(”id“) = CInt(GelenID) Then Sira = i
´Link olayy için son ID´mizi ö?reniyoruz.
sonID = rs(”id“)
i = i + 1
rs.MoveNext
Loop
´Kayit setini öldürüp içini bosaltiyoruz.
´Bizim kadar Serveri düsünen webmaster zor bulunur Valla.
rs.Close : Set rs = Nothing
´Sira numaramizi belirledikse tablomuzu tekrar açiyoruz.
´Ama hiçbir kriter vermeyip tüm kayitlarimizi açiyoruz.
´malum henüz hangi kaydi seçecegimizi bilmiyoruz.
Set rs = Conn.Execute(”Select * From data“)
´Ve dananin kopan kuyruguna biraz daha aci verdigimiz bölüm
´rs.Move() metoduyla kayitlarimiz arasinda ilerliyoruz.
´Eger eylem sonraki olarak belirtilmisse eski kaydimizin bir sonrasina
´eger eylem önceki ise bir önceki kaydina gidiyoruz.
´eger eylem belirtilmemisse ilk kaydi açiyoruz.
If Eylem = “sonraki” Then
rs.Move(Sira+1)
ElseIf Eylem = “onceki” Then
rs.Move(Sira-1)
End If
´Artik dogru kaydimizi bulduk bunu görüntüleyebiliriz.
%>
<%
Response.Write rs(”icerik“)
%>
<hr>
<%
´Hersey iyi hersey güzel.Sirada link olayimiz var.
´Hemen olayi irdelemeye geçelim.
´Bu arada danaya biraz sevgi gösterin çok bozuldu bize.
%>
<% If rs(”id“) <> CInt(ilkID) Then %>
<a href=”?eylem=onceki&SimdikiID= <%=rs(”id“)%>“>Önceki</a>
< % End If % >
<% If rs(”id“) <> CInt(sonID) Then %>
<a href=”?eylem=sonraki&SimdikiID= <% = rs(”id“) %> “>Sonraki</a>
<% End If %>
<%
´Servera biraz daha yalakalik yapip rahatlatiyoruz.
rs.Close : Set rs = Nothing
Conn.Close : Set Conn = Nothing
´Isimiz bittigine göre son olarak gidip dananin sahibinden özür diliyoruz. ![]()
%>







Add A Comment