• 29-04-2013, 03:13:40
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    PHP ile veritabanında bulunan verileri listelemeyi daha önce bir yazıda anlatmıştım. Veritabanındaki verilerin sayısının artması ile hem görsel hem de işlevsel olarak daha kullanışlı hale gelmesi için ayrıca bir yazı da PHP ile sayfalama mantığı üzerineydi. Bu iki konuyu anlattıktan sonra bu iki mantığı kullanarak herkesin kolayca kullanabileceği, basit ve işlevsel bir sayfalama sınıfının yazımını bitirdim ve dağıtmaya başlıyorum.

    Kullanım
    Önce ayar değişkeni oluşturulur.
    $sayfalaOpt = array(
         "tablo" => "tablo adı",
         "sutunlar" => "id,ad,soyad"
         "siralama" => "id DESC",
         "sayfabasiveri" => 10,
         "aktifsayfa" => $_GET["sayfa"]
    );
    Ardından MySQL bağlantıları yapılır, veritabanı seçilir, sınıf bağlanıp, ayar değişkeni parametre olarak gönderilir.

    include("class.sayfala.php");
    $sayfala = new Sayfala($sayfalaOpt);
    Son olarak veriler alınır.

    print_r($sayfala->sayfala());
    Sürümler
    v1.1 - 29.04.2013
    v1.0 - 28.04.2013

    Sınıf dosyası bu adrestedir.
    http://www.mediafire.com/download.php?yucego0b1crjn8o

    Detaylı anlatım:
    http://pehepe.net/pehepe-net-sayfala...lay-sayfalama/




    Sürüm notları:
    v1.1
    - Önceki fonksiyonda tüm metodlar public olarak tanımlanmıştı. Bazı metodların görünürlükleri private olarak değiştirildi. sayfala() metodunda, diğer metodların döndüreceği gerekli veriler zaten döndürüldüğü için, bu metodlara dışarıdan erişim gereksiz görüldü.
    - Belli sütunlara göre işlem yapma özelliği eklendi. Sayfalama sayfasında kullanılmayacak veritabanı sütunlarının dönmesini bu yöntemle engellendi.
    - Negatif aktif sayfa değeri olursa tespit edilmesi ve işlenmesi sağlandı.
  • 29-04-2013, 03:26:21
    #2
    Emeğinize sağlık, sadece sayfala() metodunu sınıf dışında kullanıyorsanız, neden diğer metotları private yapmadınız? Bir de neden Exception sınıfından extend ettiniz? Gerçekten merak ettiğim için soruyorum. Tamamen incelemedim, indirdim ve şu an inceliyorum. Bana biraz dolambaçlı ve eksik gibi geldi.


    erginkeles adlı üyeden alıntı: mesajı görüntüle
    PHP ile veritabanında bulunan verileri listelemeyi daha önce bir yazıda anlatmıştım. Veritabanındaki verilerin sayısının artması ile hem görsel hem de işlevsel olarak daha kullanışlı hale...
    .
    .
    .
  • 29-04-2013, 03:54:19
    #3
    Exception olayı tamamen bir hata. Öncelikle hata döndürmeyi de düşünmüştüm. Hata fonksiyonunu falan kaldırdım onu unutmuşum Düzeltirim.

    Basit olması için hem de arkadaşar ihtiyaçlarına göre kullansınlar diye tüm değişken ve fonksiyonlar public.
  • 29-04-2013, 04:17:02
    #4
    Özellikle bazı metotların public olması anlamsız geldi bana ama tabi ki görüş meselesi Naçizane bir iki öneride bulunabilirim belki.

    * SQL SHOW sorgusu kullanmışsınız, ancak buna izin verilmeyen veritabanlarında sorun yaşar. Bir çok kişi güvenlik için show,drop,alter,create gibi kritik sorgulara izin vermez.

    * 50 sütunlu bir tablomdan sadece id, ad ve soyad sütunlarını içeren bir liste yapmak istediğimde, açıkcası 47 sütunu niye çekiyorum diye düşünürüm. sayfalamaSorgusu() isimli metod ile içeride sorguyu yazmış ve bir takım parametreleri dışarıdan verdirmişsiniz. Ancak dediğim gibi bir problem var, istediğim sütunları çekebilmek isterim.

    * Negatif sayfa sayısı verildiğinde sistem çatlar.

    * Lütfen yorumlarımı yapıcı olarak algılayın.

    * Geliştirmek isterseniz daha başka yorumlar da yapabilirim.

    erginkeles adlı üyeden alıntı: mesajı görüntüle
    Exception olayı tamamen bir hata. Öncelikle hata döndürmeyi de düşünmüştüm. Hata fonksiyonunu falan kaldırdım onu unutmuşum Düzeltirim.

    Basit olması için hem de arkadaşar ihtiyaçlarına göre kullansınlar diye tüm değişken ve fonksiyonlar public.
  • 29-04-2013, 19:09:41
    #5
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Özellikle bazı metotların public olması anlamsız geldi bana ama tabi ki görüş meselesi Naçizane bir iki öneride bulunabilirim belki.

    * SQL SHOW sorgusu kullanmışsınız, ancak buna izin verilmeyen veritabanlarında sorun yaşar. Bir çok kişi güvenlik için show,drop,alter,create gibi kritik sorgulara izin vermez.

    * 50 sütunlu bir tablomdan sadece id, ad ve soyad sütunlarını içeren bir liste yapmak istediğimde, açıkcası 47 sütunu niye çekiyorum diye düşünürüm. sayfalamaSorgusu() isimli metod ile içeride sorguyu yazmış ve bir takım parametreleri dışarıdan verdirmişsiniz. Ancak dediğim gibi bir problem var, istediğim sütunları çekebilmek isterim.

    * Negatif sayfa sayısı verildiğinde sistem çatlar.

    * Lütfen yorumlarımı yapıcı olarak algılayın.

    * Geliştirmek isterseniz daha başka yorumlar da yapabilirim.
    Ben bu sitede hiç yıkıcı yorum yapmadım. Başkalarından gelen yorum ve eleştirileri de küçük düşürücü içeriğe sahip olmadıkları ve hakaret içermedikleri sürece hep yapıcı olarak aldım. extends hatasını düzelttim ve tekrar upload ettim.

    Ama burada "basit" kelimesine vurgu yapmak isterim Bu sınıf son derece basit bir sınıftır ve geliştirmeye de açıktır.

    Metodların hepsinin public olmasının birinci nedeni basitlik. Geliştirilmeye daha elverişli olması. Bu sınıf basit bir sınıf. İsteyen indirir doğrudan kullanır. İkincisi, ki ben bunu tercih ederim, kendi ihtiyaçlarına göre düzenleyip kullanır. sayfala() metodu ile geri döndürdüğüm aktifSayfa, toplamVeri gibi verilere aslında öncelikle ilgili metodu çağırarak ulaşmak istedim. İki şekilde de bu bilgilere ulaşılabilmek için tüm metodları public olarak bıraktım.

    Sınıf aslında doğrudan kullanılmasını istediğim bir sınıf değil. Doğrudan da kullanılabilir ama, ihtiyaca göre düzenlensin istiyorum. Gelişsin. Örneğin bir facebook.php sınıfını kafanıza göre düzenleyemezsiniz. Resmi bir sınıftır ve son haline kadar herşeyi tamamlanmıştır. Ama bu sınıf yapı olarak da yapabilecekleri olarak da son derece basit bir sınıf.

    SHOW SQL konusunda da haklısınız, veritabanına user atarken sorulur genelde. Ama yine dediğim gibi, bunu indirip doğrudan kullanan arkadaşlar, bu sorgunun çalıştırılabilir olması gerektiğini göz önüne almalılar. "Sorun olacaksa kullanmayın kardeşim" gibi bir yaklaşım yerine ben "Kendinize göre düzenleyip kullanın, gelişmesine katkıda bulunun" gibi bir yaklaşım sergilemeyi daha doğru buluyorum.

    Şöyle diyelim Bu paylaştığım, bu sınıfın ilk versiyonu olsun. 1.1 versiyonunda aldığım eleştirilerle metodları public yapmaktan vazgeçeyim. Ama eleştiri yapılmayacak yada yapılan eleştiriler çok azalacak aşamaya gelene kadar private a geçmeyi düşünmüyorum

    Neden ihtiyacım olmayan 47 sütun da dönüyor sorunuz da gayet mantıklı. Bunu da göz önüne alacağım. ayar değişkeninde bunu da isteyebiliriz. Yaptığınız 4 eleştiri de, en baştan beri aklımda olan, benim de düşündüğüm şeyler, buna emin olabilirsiniz.

    Son olarak negatif sayfa sayısı ile ilgili de bir değişiklik yaptım. aktifSayfa() metodu içinde tek satır ile bunu engelledim. Ama burada da aynı şeyleri söyleyeceğim. Ben demiyorum ki bu sınıfı kullanan GET ile aldığı değeri doğrudan sınıf ayar değişkenindeki aktifsayfa indisine atasın. Kendisi kendi yazdığı kodlar arasında en azından GETten gelen değerle ilgili birkaç mantıksal doğrulama yapmalı değil mi?

    Eleştirileriniz için teşekkür ederim. Evet bu sınıf geliştirilebilir. Yapacağınız daha eleştiri varsa neden eleştiri yapıyorsunuz demeyeceğimden emin olabilirsiniz.
  • 29-04-2013, 19:51:20
    #6
    Basitliği göz önüne almadan yorumlamıştım ben; cevabınız, düzenlemeleriniz ve çalışmanız için teşekkürler

    erginkeles adlı üyeden alıntı: mesajı görüntüle
    Ben bu sitede hiç yıkıcı yorum yapmadım. Başkalarından gelen yorum ve eleştirileri de küçük düşürücü içeriğe sahip olmadıkları ve hakaret içermedikleri sürece hep yapıcı olarak aldım. extends hatasını düzelttim ve tekrar upload ettim.

    Ama burada "basit" kelimesine vurgu yapmak isterim Bu sınıf son derece basit bir sınıftır ve geliştirmeye de açıktır.

    Metodların hepsinin public olmasının birinci nedeni basitlik. Geliştirilmeye daha elverişli olması. Bu sınıf basit bir sınıf. İsteyen indirir doğrudan kullanır. İkincisi, ki ben bunu tercih ederim, kendi ihtiyaçlarına göre düzenleyip kullanır. sayfala() metodu ile geri döndürdüğüm aktifSayfa, toplamVeri gibi verilere aslında öncelikle ilgili metodu çağırarak ulaşmak istedim. İki şekilde de bu bilgilere ulaşılabilmek için tüm metodları public olarak bıraktım.

    Sınıf aslında doğrudan kullanılmasını istediğim bir sınıf değil. Doğrudan da kullanılabilir ama, ihtiyaca göre düzenlensin istiyorum. Gelişsin. Örneğin bir facebook.php sınıfını kafanıza göre düzenleyemezsiniz. Resmi bir sınıftır ve son haline kadar herşeyi tamamlanmıştır. Ama bu sınıf yapı olarak da yapabilecekleri olarak da son derece basit bir sınıf.

    SHOW SQL konusunda da haklısınız, veritabanına user atarken sorulur genelde. Ama yine dediğim gibi, bunu indirip doğrudan kullanan arkadaşlar, bu sorgunun çalıştırılabilir olması gerektiğini göz önüne almalılar. "Sorun olacaksa kullanmayın kardeşim" gibi bir yaklaşım yerine ben "Kendinize göre düzenleyip kullanın, gelişmesine katkıda bulunun" gibi bir yaklaşım sergilemeyi daha doğru buluyorum.

    Şöyle diyelim Bu paylaştığım, bu sınıfın ilk versiyonu olsun. 1.1 versiyonunda aldığım eleştirilerle metodları public yapmaktan vazgeçeyim. Ama eleştiri yapılmayacak yada yapılan eleştiriler çok azalacak aşamaya gelene kadar private a geçmeyi düşünmüyorum

    Neden ihtiyacım olmayan 47 sütun da dönüyor sorunuz da gayet mantıklı. Bunu da göz önüne alacağım. ayar değişkeninde bunu da isteyebiliriz. Yaptığınız 4 eleştiri de, en baştan beri aklımda olan, benim de düşündüğüm şeyler, buna emin olabilirsiniz.

    Son olarak negatif sayfa sayısı ile ilgili de bir değişiklik yaptım. aktifSayfa() metodu içinde tek satır ile bunu engelledim. Ama burada da aynı şeyleri söyleyeceğim. Ben demiyorum ki bu sınıfı kullanan GET ile aldığı değeri doğrudan sınıf ayar değişkenindeki aktifsayfa indisine atasın. Kendisi kendi yazdığı kodlar arasında en azından GETten gelen değerle ilgili birkaç mantıksal doğrulama yapmalı değil mi?

    Eleştirileriniz için teşekkür ederim. Evet bu sınıf geliştirilebilir. Yapacağınız daha eleştiri varsa neden eleştiri yapıyorsunuz demeyeceğimden emin olabilirsiniz.
  • 29-04-2013, 22:06:21
    #7
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Basitliği göz önüne almadan yorumlamıştım ben; cevabınız, düzenlemeleriniz ve çalışmanız için teşekkürler
    Eleştirileriniz doğrultusunda ek bazı düzenlemeler yaptım ve 1.1 hazır Sürüm notlarını ve uygulamalı anlatım sayfasını kontrol edebilirsiniz.
  • 29-04-2013, 22:13:16
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    php için verdiğin emek gerçekten büyük, aynı zamanda güzel paylaşımlar yapıyorsun.Kendi adıma teşekkür ederim, bende işten güçten zaman bulduğum zaman fonksiyonlarımı derleyip paylaşmayı düşünüyorum.İyi çalışmalar.
  • 29-04-2013, 23:53:38
    #9
    eline sağlık