Alfabetik Sıralama :ABCDEFGHIJKLMNOPQRSTUVWXYZ -


ASP veya diğer programlama dilleriyle çalışmaya yeni başlayanların sıklıkla karşılaştıkları bir sorundur veri sayfalama. Veritabanına bağlantı kurulur ilk önce. Bu web programlamaya başlangıç için en önemli adım sayılır çoğumuzun gözünde. Daha sonra bağlanılan veritabanından verileri çekip sayfaya bastırılır. Bundan sonra, artık kendimizi web programcısı olarak görmeye başlarız. Zaman ilerledikçe veritabanına eklediğimiz veriler çoğalır, çoğalır... Artık yeni bir sıkıntı peyda olmak üzeredir. VERİ SAYFALAMA! Bu sıkıntıyı gidermek için yazımda sizlere MySQL veritabanındaki verileri, istediğimiz sayıda kayıtlara bölerek sitelerimizde nasıl kullanacağımızı bildiğim kadarıyla anlatacağım. Yazımda yer alan kodların düzgün çalışabilmesi için sniper.zip dosyasını indirip MySQL´e veritabanı olarak eklemeniz gerekmektedir.

İşe değişkenlerimizi tanımlayarak başlayalım:  

Dim Bag, Siteler, SQLTop, TopKayit
Dim KayitSayisi, SayfaSayisi, Sayfa, i

Bag = Veritabanımıza bağlantımızı sağlayacak değişken.
Siteler = Kayıtseti değişkeni.
TopKayit = Talep edeceğimiz kriterlere uyan kayıtların toplam sayısını tutan değişken.
KayitSayisi = Bir sayfada gösterilecek kayıt sayısını belirleyeceğimiz değişken.
SayfaSayisi = Talep ettiğimiz verilere ve kayıt sayısına göre toplam kaç sayfa veri oluşacağını tutan değişken.
Sayfa = O anda içinde bulunduğumuz sayfanın numarasını öğreneceğimiz değişken.
i = HTML tablomuzda kayıtların sıra sayılarını yazdıracağımız değişken.

Değişkenlerimizi tanımladıktan sonra sıra geldi bağlantımızı oluşturmaya:

Set Bag = Server.CreateObject("ADODB.Connection")
Bag.Open = "DRIVER={MySQL ODBC 3.51 Driver};database=sniper;server=localhost;uid=sniper;password=tuncay;"

Not: Yukarıdaki bağlantıyı düzgün bir şekilde sağlayabilmek için MySQL ODBC Driver´ın bilgisayarımızda yüklü olması gerekmektedir.

Bağlantı string´imizin parametrelerinin alacağı değerler kısaca şöyledir:
database = Bağlantı kuracağımız MySQL veritabanımızın adı.
server = Bağlantı kuracağımız MySQL veritabanımızın bulunduğu server.
uid = Veritabanına ulaşmak için gerekli kullanıcı adı.
password = Kullanıcı adına ait şifre.

Bağlantımızı kurduktan sonra, bir sayfada kaç adet kaydın gösterileceğini KayitSayisi isimli değişkenimizde belirtiyoruz ve hangi sayfada olduğumuzu Sayfa değişkenine atıyoruz:

KayitSayisi = 2

´Eğer QueryString´de sayfa değişkeni tanımlanmışsa
If Request.QueryString("s") <> "" Then
 
´Bulunduğumuz sayfayı bu değişkenin değeri olarak atayalım
  Sayfa = CInt(Request.QueryString("s"))
Else
 
´Değilse başlangıç sayfa numaramızı 1 olarak atayalım
  Sayfa = 1
End If

Önemli değişkenlerimizi de tanımladığımıza göre artık kayıt setimizi oluşturabiliriz. Kayıt setimizi oluşturmadan önce MySQL´de var olan bir kalıptan da kısaca bahsetmek istiyorum: LIMIT. Bu kalıp bize, sorgumuzda dönen kayıtlarından istediğimiz aralıktaki verileri süzerek dönmesini sağlar. Şöyle ki, LIMIT 5,10 şeklinde bir kullanım bize, istediğimiz sorguda dönen verilerin beşincisinden başlayarak 10 tanesinin iletilmesini sağlar. İkinci parametre kullanılmazsa (LIMIT 10 gibi) verilerin sadece ilk 10 tanesi geri döner. Bu da Access sorgularımızda kullandığımız TOP 10 a eşittir. Biz bu kalıbı kullanarak verilerimizi rahatlıkla sayfalayabileceğiz. Şimdi bu kalıbı da kullanarak kayıt setimizi açalım:

Set Siteler = Bag.Execute("SELECT * FROM tblSiteler ORDER BY fldID DESC LIMIT " & (KayitSayisi*Sayfa)-(KayitSayisi) & "," & KayitSayisi)

Yukarıdaki SQL sorgumuz, KayitSayisi değişkeninin değerini "2", Sayfa değişkeninin değerini de "3" olarak kabul ettiğimizde aşağıdaki şekilde çıktı verdiğini kabul edebiliriz:
"SELECT * FROM tblSiteler ORDER BY fldID DESC LIMIT 4, 2"
Bu da bize 4. kayıttan itibaren 2 kaydın döndürülmesini istediğimiz anlamına gelmektedir. Kayıt setimizden gerekli kayıtları aldıktan sonra sayfalama linklerini yazdırabilmemiz için gerekli olan, sorgumuza eşit toplam kaç kayıt olduğunu öğrenmeliyiz:

Set SQLTop = Bag.Execute("SELECT COUNT(fldID) FROM tblSiteler")
TopKayit = SQLTop(0)

Verilerimizi sayfamıza yazdırmamız için gerekli tüm hazırlıkları tamamladık. Artık yazdırmaya başlayalım:

<%
If Not Siteler.EOF Then

  ´HTML tablomuzu oluşturuyoruz.
%>
<table border="1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">
  <tr>
  <td
width="5" bgcolor="#FFFBDF"><b>S</b></td>
  <td width="245" bgcolor="#FFFBDF"><b>Site Adı</b></td>
  <td width="250" bgcolor="#FFFBDF"><b>URL</b></td>
  </tr>
<%
  ´Tablodaki sıra numarasını belirlemek için değişkenimizi tanımlıyoruz
  i=1

  ´Talep ettiğimiz kayıtların sonuna kadar...
  Do While Not Siteler.EOF

    ´... tüm kayıtları sayfamıza bastırıyoruz
%>
  <tr>
  <td
align="center"><%=i%></td>
  <td><b><%=Siteler("fldSiteAdi")%></b></td>
  <td><a href="<%=Siteler("fldURL")%>" style="color:#0000FF" target="_blank"><%=Siteler("fldURL")%></a></td>
  </tr>
<%
    ´Sıra numarasını 1 arttırıyoruz
    i=i+1

    ´Kayıtsetimize sonraki kayda geçmesini söylüyoruz
    Siteler.MoveNext

    ´Yukarıdaki işlemin, verilerin sonuncusuna gelene kadar devam etmesi için döngümüzü çeviriyoruz
Loop
%>

Verilerimizi yazdırdıktan sonra sıra geldi sayfa numaralarını yazdırmaya:

  <tr>
  <td
colspan="3" align="right">
<%
  ´Toplam kayıt sayısı gösterilecek kayıt sayısından büyükse...
If CInt(TopKayit) > CInt(KayitSayisi) Then
  ´Link verilecek kaç sayfamız olduğunu hesaplıyoruz
  SayfaSayisi = CInt(TopKayit) / CInt(KayitSayisi)
  If InStr(1,SayfaSayisi,",",1) > 0 Then SayfaSayisi = CInt(Left(SayfaSayisi,InStr(1,SayfaSayisi,",",1))) + 1

  ´Ve yine elimizdeki sayfa sayısı 1´den büyükse
  If SayfaSayisi > 1 Then
    ´Her sayfa numarası için sayfamıza linkimizi yazdırıyoruz
    For i=1 To SayfaSayisi
      Response.Write "<a href=""?s=" & i & """ style=""color:#0000FF"">" & i & "</a> "
    Next
  End If


  ´Sayfa numarası yazdırma işlemi bitti...
End If
%>
  </td>
  </tr>
</table>

Ve final! Artık tablomuzdaki veriler, sayfalara ayrılmış ve linkleri oluşturulmuş bir şekilde HTML sayfamıza basıldı. Son olarak kodların tamamını yazdıktan sonra yazımı bitiriyorum. Kaliteli sitelerde kullanmanız dileğiyle...

  1. <%
  2. ´Her iyi programcı değişken tanımlarmış, ben ilk defa yapıyorum :)
  3. Dim Bag, Siteler, SQLTop, TopKayit
  4. Dim KayitSayisi, SayfaSayisi, Sayfa, i
  5. ´Bağlantımızı oluşturup açıyoruz
  6. Set Bag = Server.CreateObject("ADODB.Connection")
  7. Bag.Open = "DRIVER={MySQL ODBC 3.51 Driver};database=sniper;server=localhost;uid=sniper;password=tuncay;"
  8. ´Bir sayfada gösterilecek kayıt sayısı
  9. KayitSayisi = 2
  10. ´Eğer QueryString´de sayfa değişkeni tanımlanmışsa
  11. If Request.QueryString("s") <> "" Then
  12.   ´Bulunduğumuz sayfayı bu değişkenin değeri olarak atayalım
  13.   Sayfa = CInt(Request.QueryString("s"))
  14. Else
  15.   ´Değilse başlangıç sayfa numaramızı 1 olarak atayalım
  16.   Sayfa = 1
  17. End If

  18. ´Kayıt sayımız ve sayfa numaramıza göre veritabanından verilerimizi talep ediyoruz
  19. Set Siteler = Bag.Execute("SELECT * FROM tblSiteler ORDER BY fldID DESC LIMIT " & (KayitSayisi*Sayfa)-(KayitSayisi) & "," & KayitSayisi)
  20. ´Veritabanında kriterlerimize uygun kayıtların toplam sayısını alıyoruz
  21. ´Bu sayfa numaralarını doğru yazdırabilmemiz için şart
  22. Set SQLTop = Bag.Execute("SELECT COUNT(fldID) FROM tblSiteler")
  23. TopKayit = SQLTop(0)
  24. ´Eğer veritabanımızdan kayıt dönüyorsa
  25. If Not Siteler.EOF Then
  26.   ´HTML tablomuzu oluşturuyoruz.
  27. %>
  28. <table border="1" bordercolor="#C0C0C0" style="border-collapse:collapse; font:normal normal normal 11px verdana;" width="500">
  29.   <tr>
  30.   <td width="5" bgcolor="#FFFBDF"><b>S</b></td>
  31.   <td width="245" bgcolor="#FFFBDF"><b>Site Adı</b></td>
  32.   <td width="250" bgcolor="#FFFBDF"><b>URL</b></td>
  33.   </tr>
  34. <%
  35.   ´Tablodaki sıra numarasını belirlemek için değişkenimizi tanımlıyoruz
  36.   i=1
  37.   ´Talep ettiğimiz kayıtların sonuna kadar...
  38.   Do While Not Siteler.EOF
  39.     ´... tüm kayıtları sayfamıza bastırıyoruz
  40. %>
  41.   <tr>
  42.   <td align="center"><%=i%></td>
  43.   <td><b><%=Siteler("fldSiteAdi")%></b></td>
  44.   <td><a href="<%=Siteler("fldURL")%>" style="color:#0000FF" target="_blank"><%=Siteler("fldURL")%></a></td>
  45.   </tr>
  46. <%
  47.     ´Sıra numarasını 1 arttırıyoruz
  48.     i=i+1
  49.     ´Kayıtsetimize sonraki kayda geçmesini söylüyoruz
  50.     Siteler.MoveNext
  51.     ´Yukarıdaki işlemin, verilerin sonuncusuna gelene kadar devam etmesi için döngümüzü çeviriyoruz
  52.   Loop
  53.   ´Şimdi sayfa sayımız 1´den fazlaysa sayfa sayılarımızı yazdırıyoruz
  54. %>
  55.   <tr>
  56.   <td colspan="3" align="right">
  57. <%
  58.   ´Toplam kayıt sayısı gösterilecek kayıt sayısından büyükse...
  59.   If CInt(TopKayit) > CInt(KayitSayisi) Then
  60.     ´Link verilecek kaç sayfamız olduğunu hesaplıyoruz
  61.     SayfaSayisi = CInt(TopKayit) / CInt(KayitSayisi)
  62.     If InStr(1,SayfaSayisi,",",1) > 0 Then SayfaSayisi = CInt(Left(SayfaSayisi,InStr(1,SayfaSayisi,",",1))) + 1
  63.     ´Ve yine elimizdeki sayfa sayısı 1´den büyükse
  64.     If SayfaSayisi > 1 Then
  65.       ´Her sayfa numarası için sayfamıza linkimizi yazdırıyoruz
  66.       For i=1 To SayfaSayisi
  67.         Response.Write "<a href=""?s=" & i & """ style=""color:#0000FF"">" & i & "</a> "
  68.       Next
  69.     End If
  70.     ´Sayfa numarası yazdırma işlemi bitti...
  71.   End If
  72. %>
  73.   </td>
  74.   </tr>
  75. </table>
  76. <%
  77.   ´Artık kodumuzu deneyebiliriz
  78. End If
  79. %>

NOT: Bu kodlar Sitemizde (Temha.neT) Kullandıgımız Sayfalama Sistemiyle Aynısıdır. Makale Findikkurdu.com sitesinden Alıntıdır.



Konu: ASP ile MySQL verilerini sayfalama
 
Okunma Sayısı : 171
Eklenme Tarihi : 31 Ocak 2007, Çarşamba
SONRAKI BILGI : DOĞUMU ve AİLESİ Zübeyde Hanım   
Forum Linki:
Aranan Kelime:
 

En Yeni Bilgiler


 ISS PWS DB`Ye Yazma Okuma izni verme ISS PWS DB`Ye Yazma Okuma izni verme
 FSO ile Upload FSO ile Upload
 Rastgele şifre üretmek Rastgele şifre üretmek
 ASP - Boşluksuz(Space) Uzun Kelimeleri Bölme ASP - Boşluksuz(Space) Uzun Kelimeleri Bölme
 ASP ile Base64 Şifreleme ASP ile Base64 Şifreleme
 ASP ile Base64 Şifre Çözme ASP ile Base64 Şifre Çözme
 Tüm harfleri büyütme, küçültme ve kelimelerin ilk harflerini büyütme Tüm harfleri büyütme, küçültme ve kelimelerin ilk harflerini büyütme
 Mailleri bölerek göndermek Mailleri bölerek göndermek
 Türkçe karakterleri ingilizce karşılıklarına çevirmek Türkçe karakterleri ingilizce karşılıklarına çevirmek
 Hata sayfası(404) ile link yönetimi Hata sayfası(404) ile link yönetimi
 Mail okundu bilgisi Mail okundu bilgisi
 Online üyeler Online üyeler
 Önceki sonraki linki Önceki sonraki linki
 ASP ile Web Programcılığı ASP ile Web Programcılığı
 ASP de diziler , dizi değişkenler ASP de diziler , dizi değişkenler
 ASP - Operatörler ASP - Operatörler
 ASP ile MySQL verilerini sayfalama ASP ile MySQL verilerini sayfalama
 ASP ile MS Access verilerini sayfalama ASP ile MS Access verilerini sayfalama
 ADO - Giriş (Bölüm 1 ADO - Giriş (Bölüm 1
 ADO - Connection (Bölüm 2) ADO - Connection (Bölüm 2)
 ASP ile Online Radyo Hizmetine Giriş ASP ile Online Radyo Hizmetine Giriş
 ASP dosyalarını DLL´ye çevirme ASP dosyalarını DLL´ye çevirme
 HTTP 500.100 hatalarına hükmedin HTTP 500.100 hatalarına hükmedin
 ASP ve VBScript nedir? ASP ve VBScript nedir?
 VBScriptte Veri Tipleri VBScriptte Veri Tipleri
 VBScriptte değişkenler ve sabitler VBScriptte değişkenler ve sabitler
 VBScriptte Dictionary Nesnesi VBScriptte Dictionary Nesnesi
 Regular Expressions (Düzenli İfadeler) Regular Expressions (Düzenli İfadeler)
 Şartlı ifadeler Şartlı ifadeler
 Persist Bileşeni ile Email formu Persist Bileşeni ile Email formu
 Vertabanından 2-3-4`erli sıralama Vertabanından 2-3-4`erli sıralama
 Arama Motoru yapmak Arama Motoru yapmak
 Jmail bileşeni ile mail formu Jmail bileşeni ile mail formu
 ASP`ye giriş ASP`ye giriş
 Değiskenler Değiskenler
 ASP başlangıç ASP başlangıç
 Arama Motoru Arama Motoru
 Form bilgileri Form bilgileri
 Veritabanı, kayıt ve silme işlemleri Veritabanı, kayıt ve silme işlemleri
 Veritabanına bağlanmak ve veri almak Veritabanına bağlanmak ve veri almak
 Veritabanı oluşturma Veritabanı oluşturma
 Querystring Querystring
 Mailllist yapımı Mailllist yapımı
 Kayıtları Sayfalara bölmek Kayıtları Sayfalara bölmek
 Sub kullanımı Sub kullanımı
 Ziyaretçi`nin IP Numarasını almak Ziyaretçi`nin IP Numarasını almak
 Sayfaya şifre koymak Sayfaya şifre koymak
 Online kişi sayısı Online kişi sayısı
 Kategorili Sistem Kategorili Sistem
 Tarihler arası veri seçtirmek. Tarihler arası veri seçtirmek.
 GET Yöntemi ile İşlemler GET Yöntemi ile İşlemler
 POST Yöntemi ıle ışlemler POST Yöntemi ıle ışlemler
 ASP`de Güvenlik Önlemleri ASP`de Güvenlik Önlemleri
 Cdonts ile mail formu Cdonts ile mail formu
 FSO ile log tutmak FSO ile log tutmak
 ASPUpload bileşeni ASPUpload bileşeni
 Sunucu Değişkenleri Sunucu Değişkenleri
 Alışveriş ve Sepet Yapımı Alışveriş ve Sepet Yapımı
 Flood koruması Flood koruması
 Sayfaları şifreleme(ENCODE) Sayfaları şifreleme(ENCODE)
 SPLIT Kullanımı SPLIT Kullanımı
 YTL Güncellemesi YTL Güncellemesi
 Tarih ve Saat Fonksiyonları Tarih ve Saat Fonksiyonları
 Döngüler Döngüler
 XMLHTTP XMLHTTP
 NTVMSNBC.COM Haberleri NTVMSNBC.COM Haberleri
 IIS Ayarları 2 IIS Ayarları 2
 ASP Tear ASP Tear
 Rastgele Veri Rastgele Veri
 ASP Jpeg ASP Jpeg
 SQL Komutları SQL Komutları
 Array Nesnesi Array Nesnesi
 If...else ıfadesi If...else ıfadesi
 Tavsiyet Et Tavsiyet Et
 Birden Fazla Alanadı Desteği Birden Fazla Alanadı Desteği
 Online Üyeler Online Üyeler
 Güvenlik Kodu Güvenlik Kodu
 MS SQL Server - 2 MS SQL Server - 2
 MS SQL Server - 1 MS SQL Server - 1
 MS SQL Server - 3 MS SQL Server - 3
 XMLHTTP ile döviz Kurları XMLHTTP ile döviz Kurları
 TL`yi YTL olarak Yazdırmak TL`yi YTL olarak Yazdırmak
 YTL`yi TL olarak Yazdırmak, YTL`yi TL olarak Yazdırmak,
 Dönüşümlü Banner Sistemi Dönüşümlü Banner Sistemi
 IP Filtresi IP Filtresi
 MySmartUpload Bileşeni MySmartUpload Bileşeni
 SQL İle İşlemler SQL İle İşlemler
 Cookie(Çerez) Kullanımı Cookie(Çerez) Kullanımı
 ASP ile Mail gönderme. ASP ile Mail gönderme.
 SQL - Yapısal Sorgu Dili 1 SQL - Yapısal Sorgu Dili 1
 MS SQL Server - 4 MS SQL Server - 4
 Klasör Şeklinde Linkler(404 Yönetimi) Klasör Şeklinde Linkler(404 Yönetimi)
 Http`leri Link Yapmak Http`leri Link Yapmak
 Cookie`s (Çerezler) Cookie`s (Çerezler)
 Renkli Tablolar Renkli Tablolar
 Windows XP`de SMTP Kurulumu Windows XP`de SMTP Kurulumu
 Err Nesnesi Kullanımı Err Nesnesi Kullanımı
 MS SQL Server - 5 MS SQL Server - 5
 Daha Performanslı Kodlar Daha Performanslı Kodlar
 Jmail ile Şifreleme Jmail ile Şifreleme
 Karakter Temizleme Karakter Temizleme
 Sınırsız Kategori Sistemi Sınırsız Kategori Sistemi
 Makale Sayfalama Makale Sayfalama
 IIS Kurulumu ve Yazma İzni IIS Kurulumu ve Yazma İzni
 Geçen Zaman Gösterimi Geçen Zaman Gösterimi
 Include Yöntemleri Include Yöntemleri
 E-Mail adresi kontrolü E-Mail adresi kontrolü
 Açılır Kutu(DropDown) yapımı Açılır Kutu(DropDown) yapımı
 FSO ile Listeleme FSO ile Listeleme
 Tarih Format`ı Tarih Format`ı
 XmlHTTP Türkçe Karakter Problemi XmlHTTP Türkçe Karakter Problemi
 Bileşen Kurulumu Bileşen Kurulumu
 Stored Procedure - MSSQL Stored Procedure - MSSQL
 Ntvmsnbc Haberleri (XmlHTTP) Ntvmsnbc Haberleri (XmlHTTP)
 Tarih Biçimleri Tarih Biçimleri
 Stored Procedure Değişkenler Stored Procedure Değişkenler
 Fonksiyon(Function) Kullanımı Fonksiyon(Function) Kullanımı
 Tablolu Yanyana Sıralama Tablolu Yanyana Sıralama
 Puan sistemi Puan sistemi
 Access`ten MSSQL`e Access`ten MSSQL`e
 SQL Distinct Kullanımı SQL Distinct Kullanımı
 Değer Fonksiyonları Değer Fonksiyonları
 Türkçe karakter kontrol Türkçe karakter kontrol
 ASP Class(Sınıf) Kullanımı ASP Class(Sınıf) Kullanımı
 Üyelik Sistemi Yapımı Üyelik Sistemi Yapımı
 IIS Şifresi Koymak IIS Şifresi Koymak
 Operatörler: Operatörler:
 RSS Sayfası Yapımı RSS Sayfası Yapımı
 Veritabanı Tablo İşlemleri Veritabanı Tablo İşlemleri
 

 

 

Copyright © 2008 Temha.neT