Kayitlari Sayfalamak !

Dee_Mask

Banned
Mesela bir ziyaretçi defteri hazırlıyorsunuz.Yok yok boş verin ziyaretçi defterini daha profesyonel bir şeyler olsun… Mesela büyük bir şirketin Internet sitesini hazırlıyorsunuz.Ve bu site de yüzlerce ürün var.Hepsini aynı sayfada vermeniz kullanıcı açısından ve tasarım olarak can sıkıcı bir olaydır.Ürünleri sayfalara bölerek vermek en doğrusu olacaktır.Zaten çoğu sitede böyle yapıyor.Muhakkak örneklerini görmüşsünüzdür. Sayfanın en altında 1 2 3 4 gibi numaralar olur ve bu numaralara tıkladığınız zaman aslında aynı sayfa olan fakat bölünmüş diğer küçük sayfalara ulaşırsınız.Peki nasıl yapılır bu olay? İşte fazla uzatmadan bu sorunun cevabını vermeye çalışalım…



Başlamadan önce;



Adı “veritabanim.mdb” olan bir Access dosyamızın olduğunu ve bu veritabanımızın içerisinde de “Tablom” adında bir tablomuzun olduğunu varsayıyorum.İşte tablomuzda da 80-90 adet kayıt olsun.Bizde bunları parçalayarak 8-9 sayfa haline getirelim.



Aşağıdaki kodları inc_baglantim.asp olarak kaydedin.Böylece her dosya için ayrı ayrı bu kodları yazmak zorunda kalmazsınız.



inc_baglanti.asp





Sayfalama ASP



<%' Bir SQL ifadesi ile tablomuzdaki tüm verileri seçelim
SQL="Select * From Tablom"
' Seçtigimiz bilgilere ulasmak için bir RecordSet olusturalim.' ADODB.Connection sayfalama islemini yapamadigimiz için ' RecordSet olusturuyoruz.
Set Sonuc=Server.CreateObject("ADODB.RecordSet")Sonuc.Open SQL , Baglanti,1
'sonuc nesnemizin bos olmasi durumunda bunu ziyaretçiye bildirelim
if Sonuc.Eof Or Sonuc.Bof ThenResponse.Write " Veritabanimiz Içerisinde uygun kayit bulunamadi. "' veritabanimiz içerisinde kayit varsaELSE' Evet simdi Basliyoruz.
Kayit_Sayisi=10 ' her sayfada bulunmasini istedigimiz kayit sayisi Sonuc.PageSize=Kayit_SayisiSonuc.CacheSize=Kayit_SayisiToplam_Sayfa=Sonuc.PageCount 'bütün verileri toplam kaç sayfaya böldük?
' Eger Sayfa degiskenimizin karakter uzunlugu sifir sa' Yani sayfa degiskenimizde deger yoksaif len(Sayfa)=0 Then ' Sayfa degiskeni olarak 1 'i atiyalim' Ziyaretçi sayfaya ilk girisinde 1.sayfadan baslayacaktir.' Biz sayfa degiskenini göndermedigimiz için de ' sayfa degiskeninde deger olayacaktir.Simdiki=1 'simdiki o anki yayinlanan sayfanin numarasini ifade ediyorElse ' Eger sayfa degiskenimiz bir eger içeriyorsa bunu ' sayisallastiralim [ CINT(Degisken) ]simdiki=CINT(Sayfa)End if
' Kontrollere devam edelim' Eger simdiki sayfa degiskenimiz Toplam sayfa sayimizdan büyükse' Simdiki sayfayi son sayfa olarak ayarliyoruz.
if simdiki > Toplam_Sayfa Then




Simdiki=Toplam_SayfaEnd if
'Eger simdiki sayfamiz 1 den küçükse 'yayinlanacak sayfa olarak 1. sayfayi atiyalimif simdiki < 1 Then Simdiki=1End if
' Programin normal olarak çalismasi durumunda simdiki degiskeni ' Ne toplam sayfadan büyük nede 1 den küçük çikacaktir.' Ama kullanicinin müdahalesi sonucunda böyle hatalar olabilir.' Yukaridaki kontrollerde bu gibi hatalarin önüne geçtik.
'Simdi de hazirladigimiz programa hangi sayfayi göstermesi 'gerektigini söylüyoruz. Sonuc.AbsolutePage=Simdiki' Toplam kaç tane kayit oldugunu ögrenelimBulunan_Sonuc=Sonuc.RecordCount' Döngümüze baslayalim' Döngü kosullari ;' 1- Döngümüz bir sayfada gösterilecek olan kayit sayisi kadar olmali' 2- Döngümüz veritabanindaki son kayitta durmali (Sonuc.EOF)' Kaç kere döngü yaptigimizi saymak için bir degisken olusturalim' Bu degiskeni sifirdan baslatiyoruz Dongu_Say=0Do While Scr < Kayit_Sayisi And Not Sonuc.EOF'istedigimiz kayitlari ekrana dökelimResponse.Write Sonuc("Sutun1")Response.Write "
"'Yaptigimiz döngü sayisini 1 arttiralimDongu_say = Dongu_say + 1'Bir sonraki kayita geçelimSonuc.MoveNext
'Döngü kosullar olusana kadar devam etsin.LOOP
'Döngümüz kosullarini yerine getirdikten 'sonra baglanti ve kayit nesnelerimizi'Kapatalim Sonrada onlari imha edelim ki 'bosu bosuna yormasinlar serverimizi
Baglanti.CloseSet Baglanti=NothingSonuc.CloseSet Sonuc= Nothing
' simdide sayfanin en altindaki linklerimizi olusturalim.' Döngümüzü yine kosullara bagli olarak yapacagiz.' Döngümüz Toplam sayfamizdan çok olmamali
FOR Link_Say = 1 TO Toplam_Sayfa
iF Link_say = Simdiki Then
Response.Write "" & Link_Say & ""
ELSE



Response.Write "" & Link_Say & ""
END IF
'Döngümüz Devam etsin
NEXT
'Kodlarimizi yazmaya baslarken bir kontrol yapmis ama kapatmamistik' Sonuc un kayitlar içermesi durumunda yapilmasi gerekenleri bir bir' yaptirdiksimdide bu kontrolü bitirelim
END iF
 
paylaşım için thx.
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*
 
bayigram takipçi satın al instagram beğeni satın al instagram takipçi satın al tiktok takipçi satın al Buy Followers bugün haber
vozol
Geri
Üst