Php Get Metoduyla Veri Çekme Hk.

Bu konuyu okuyanlar

bortu3

Asistan
Katılım
7 Ekim 2010
Mesajlar
114
Reaksiyon puanı
0
Puanları
0
Merhaba sdn ailesi sorum şu ki ben flash oyun sitesi yapıcam oyun yuklendiginde mysqlden idye en son id li oyun cekilcek herşeyiyle idyi bi kere cekicez ama en son hangi satır geldiyse onla birlikte ama yani en son acılan konu 10sa oto degiscek dun acmıstım bi konu mysqlle ilgili order by asc filan onlarla cekicemde bunun mantıgını anlayamadım diyeyim ister mantıgını anlatın ister kodlanmıs halini yardım ederseniz cok sevinirim.


özet : flash oyun sitesi her oyuna farklı id ile geliyor ve cekiliyor ayrıca en son yüklenen oyun aynen degisiyor onun mantıgı veya kodlaması.


Teşekkürler.

---------- Post added at 22:22 ---------- Previous post was at 21:19 ----------

güncell bunu öğrenmem lazım yardım edin lütfen
 

bortu3

Asistan
Katılım
7 Ekim 2010
Mesajlar
114
Reaksiyon puanı
0
Puanları
0
kardesim onu sen ben dahil herkes biliyo

ben soyle bi mantık yurutttum


if($oyun==$id//en yuksek olandan baslıyo ){

burdada oyun sayfası
}

tahminim boyle olucak

bu seferde oyunların gosterildigi tanıtıldıgı sayfada sayfalandırma gerekiyo onunda nasıl yapıldıgını bilmiyorum mantıgını bi yardım ediverin...
 

mgsmus

Asistan
Katılım
1 Aralık 2009
Mesajlar
126
Reaksiyon puanı
5
Puanları
0
Klasik sayfalandırma için iki kez sorgu yapmanız gerekiyor.

İlk sorguda önce herhangi bir kriter belirlemeden tablodaki toplam kaydı buluyoruz:

Kod:
$sorgu = mysql_query("SELECT * FROM tablo");
$toplam = mysql_num_rows($sorgu);
diyelim ki her sayfada 10 kayıt gözüksün:
Kod:
$sayfa_kayit_sayisi = 10;
Şimdi toplam kaydı eğer sayfa başına düşen kayda bölersek elde edeceğimiz toplam sayfa sayısı ve doğal olarak son sayfanın numarası olacaktır.

Kod:
$sayfa_sayisi = ceil($toplam/$sayfa_kayit_sayisi);
// ceil kullandık ki elde ettiğimiz tamsayı olsun. round kullanırsanız son sayfaya artan kayıtlar çıkmaz. round 4,3 ü 4'e; ceil ise 4,3 ü 5'e tamamlar. Eğer round kullanırsanız sayfa sayısı 1 eksik olacaktır o yüzden örneğin kayıt son sayfaya kalmışsa o sayfa dahil olmayacaktır. Kısaca ceil kullanalım :)

Şimdi sayfalamayı $_GET ile yapacağımızdan (en kolayı sanırım) mevcut sayfayı gösteren bir değişken tanımlayalım.

Kod:
$sayfa_no = $_GET['sayfa'];
// burada güvenliği size bırakıyorum.

Sayfa numarası 1 ve 1 den büyük olmalı, tamsayı olmalı, boş olmamalı vs...
Kod:
if($sayfa_no < 1 || !is_numeric($sayfa_no) || !isset($sayfa_no) || !empty($sayfa_no)) { // bu kısmı güvenliğe göre uzatabilirsiniz. regexp vs
$sayfa_no = 1; // kriterlere uygun değilse ilk sayfa olsun
} elseif ($sayfa_no>$sayfa_sayisi) { // sayfa numarası son sayfadan büyük olamaz. Büyükse son sayfaya eşitleyelim
$sayfa_no = $sayfa_sayisi;
}
Şimdi ana sql cümlemiz için bir limit belirleyeceğiz. Ana sqlin parçası olacak

Kod:
$limit = 'LIMIT '.($sayfa_no - 1) * $sayfa_kayit_sayisi.','.$sayfa_kayit_sayisi;
Sayfa no ($sayfa_no) Sayfa Başı Kayıt Sayısı SQL Parçası
-------------------- --------------------- -------------
1 10 LIMIT 0,10 // ilk 10 kayıt
2 10 LIMIT 10,10 // ilk 10 dan sonraki 10 kayıt (2.sayfa)
3 10 LIMIT 20,10 // ilk 20 den sonraki 10 kayıt (3.sayfa)
...

gibi.

Şimdi elimizde $_GET ile gelen sayfa değişkenine göre şekillenen bir limit var. Bunu ana sqlimizle birleştiriyoruz. Bu ana sql neyi sayfalamak istiyorsanız onun sorgusu olacak. Belli kriterlere göre sorgu yaptırabiliriz. yeterli limiti sona ekleyelim

Kod:
$anasorgu = mysql_query("SELECT * FROM tablo WHERE deger > 10 $limit");  // toplamını bulduğumuz aynı tabloda deger alanı 10 dan büyük olanları sayfa sayfa gösterelim.
Sonucu ekrana yazdırdığınızda sadece ilk 10 kayıtı gösterecektir. Çünkü şu an $sayfa_no = 1; Ama url işte listele.php?sayfa=2 olursa $sayfa_no = 2 olacak ve 2. sayfayı yani sonraki 10 kayıtı gösterecektir.


Sayfaları ekranda göstermek için. Örneğin 1 2 3 4 şeklinde:
Kod:
for($i=1;$i<=$sayfa_sayisi;$i++) { // ilk sayfa 1 olacak ve sayfa sayısı kadar artacak
echo '<a href="listele.php?sayfa='.$i.'">'.$i.'</a>';
}
Bu kısımda örneğin aktif sayfayı göstermek isterseniz farklı bir stille
Kod:
for($i=1;$i<=$sayfa_sayisi;$i++) { // ilk sayfa 1 olacak ve sayfa sayısı kadar artacak

if($i == $sayfa_no) {
$stil = ' class="aktif-sayfa"';
} else {
$stil = '';
}

echo '<a'.$stil.' href="listele.php?sayfa='.$i.'">'.$i.'</a>';
}
olabilir.

Biraz karışık oldu ama. Bunu php.about.com 'dan öğrenmiştim yıllar önce. Hala da kullanırım. tabi bu haliyle değil artık :)
 
Üst