Şimdi Ara

PHP ve MYSQL ile verileri sıra ile sayfalama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
3.013
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba;

    İnternette oldukça yazılan bir konu.

    Bende kendim kafamda bir mantık geliştirdim elbette diğer arkadaşlarımınkine benziyordur. Ama bundan daha kısa ve mantıklısı varmı sizlerinde görmesini istedim.
    Kullanmak isteyen arkadaşlarımda kullanabilirler.

    Sayfamızda haberler yayınlanıyor ve her sayfada 5 haberin yayınlanmasını istiyorum.

    MYSQL bağlantımız için basit bir fonksiyon yazdım bunun konumuzla alakası yok ama scripti çalıştırmak için bu koda ihtiyacınız var. Her türlü MySql bağlantımızı tek satırda halledebilmek ve verileri alabilmek için bu fonksiyonu kullanabilirsiniz. Fonksiyonu çağırırken sadece veritabanı adı ve sql sorgunuzu belirtmeniz yeterli. Aşağıda da fonksiyon içinde mysql bağlantı ayarlarını yapmanız yeterli.

    MYSQL bağlantı fonksiyonu scripti - dosya adı: mysql.php

     
    <?php
    /*BAGLANTI FONKSIYONU*/
    function baglan($veritabani,$sql)
    {
    $yer="localhost"; $id="kullanıcı adı, genelde root olurt"; $sifre="şifrenizi yazınız"; //mysql bilgileri

    $baglanti_no=mysql_connect($yer, $id, $sifre); //buradan asagisi standart sql baglantisi
    mysql_select_db($veritabani, $baglanti_no);
    mysql_query("SET NAMES 'utf8'");//bu kod sql den alinan kodlari türkçe karakter sorunundan kurtariyor tabi mysql de de tablolar utf8 turkçe seçilmeli.
    $ham_veri=mysql_query($sql,$baglanti_no); //ham veri çekiyorsuun
    global $ham_veri;// global fonksiyonu yerel degiskeni disarda da etkin yapiyor. $ham_veri değişkenine mysql den alinan veriler ham olarak yaziliyor.
    mysql_close($baglanti_no); //güvenligimiz için mysql baglantimizi kapatiyoruz.
    }
    ?>

    Artık yukarıdaki fonksiyonumuzu mysql ile bağlantı sağlayacağımız her sayfamızın en başına <?php require("mysql.php"); ?> kodlarını entegre ederek kullanabiliriz. Fonksiyonda elde ettiğiniz verileri $ham_veri değişkeni ile kullanabilirsiniz.



    Gelelim konumuza

    Öncelikle sayfanın altında veya neresinde gözükecekse orada gözükecek 1-2-3-4 gibi sayfa numaralarını(linkleri) oluşturdum - dosya adı: index2.php
     

    <?php

    baglan("veritabanı adı","SELECT count(NO) AS data_count FROM haber");
    //baglan fonksiyonu içersine veritabanı adı ve sql sorgumu yazıp istediğim veriyi $ham_veri değişkenine alıyorum.
    //bu sql komutu ile tablomun kaç satırdan oluştuğunu öğreniyorum ve $ham_veri değişkenine alıyorum.

    $satir_sayisi=mysql_fetch_array($ham_veri); //anladığınız üzere satır sayısını anlamlı hale getirip değişkene aktarıyorum.
    $sayfa_sayisi=$satir_sayisi[0]/5; //her sayfam 5 haberden oluşuşacağı için satır sayısını 5 e böldüm ki sayfa sayısını bulayım.
    //Her bir satır burada her bir haberi temsil ediyor. KAç satır varsa o kadar haberim var demek.

    $sayfaid=0;
    $i=0;
    while($i<$sayfa_sayisi)
    { echo "<a href=\"index2.php?id=$sayfaid\">$sayfaid</a> "; //ekrana sayfa sayısı kadar 0 dan başlayarak rakam(link) yazdırıyorum tabiki sql sorguma etki etsin diye id değerleride var
    $i++;
    $sayfaid++;
    }

    ?>



    Daha sonra sayfa linklerini(id lerini) algılayıp mysql den dilediğimiz sınırda veriyi çeken kodu yazdım - dosya adı: index2.php
     
    $baslangic=$_GET["id"]*5; //tablomuzda kaçıncı satırdan veriyi çekmeye başlayacaksa 5 er 5 er çekeceğimizden çarpı 5. Her bir sayfa id si için 5 satır atlayarak 5 haber çekecek.
    baglan("veritabanı adı","select * from haber order by TARIH desc LIMIT $baslangic,5");
    //tarih sırasına göre en son yazılan haberi ilk sayfaya çıkaracak ve sayfa id sine göre sadece gerekli 5 haberi veri tabanından çekecek

    Artık elde ettiğim verileri sayfamda istediğim gibi ve istediğim yerde kullanabilirim.

    Örneğin - dosya adı: index2.php Bu kod parçası bir üstteki kod parçasının altında olmak zorunda.
     
    <?php
    while( $veri=mysql_fetch_array($ham_veri))
    { echo "$ham_veri[KONU] $ham_veri[HABER]"; }

    ?>

    gibi hangi sayfa numarasına basarsam tarih sırasına göre o 5 haber ekrana istediğim yerde ve eşkilde yazılacak. Düzgün bir görünüm için HTM kodlarını kullanmakta fayda var



    < Bu mesaj bu kişi tarafından değiştirildi Menow -- 20 Ocak 2010; 17:22:15 >







  • Yapay Zeka’dan İlgili Konular
    PHP ile CSS yolu problem
    14 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.