Php ile Mysql Veritabanından Rasgele Veri Çekmek

Pazartesi, Ekim 27, 2008 4:40 | Görüntülenme: 502 | Yazar: Sercan Aydın
Kategoi:Php & Mysql

Php’yi kullanarak kendi oluşturduğumuz veritabanında rasgele veri çekilebilir. Bu şuanda bazı sitelerde iyice popülerleşti. Rasgele yazılar, rasgele resimler, rasgele sözler vb gibi. Bizde bu makalemizde Php’yi kullanarak MySql veritabanımızdan rasgele olarak nasıl veri çekerek sayfamızda gösterebileceğimizden bahsedeceğiz.

Gelelim bu önemli ve güzel konumuza. İstediğimiz olayı yanı Php ile MySql’den ragele veri çekme olayını aşağıdaki kodlar sağlamaktadır. Gerekli açıklamalar kodlar arasında yapıldığı için burada açıklama yazmıyoruz. Buyrun…

<?php
do{
#    Veritabanımızdaki tablonun toplam satır sayısını alıyoruz
$toplam = @mysql_num_rows(mysql_query(”SELECT * FROM tabloadimiz”));
#    Ve rand(); fonksiyonu ile rasgele bir sayı üreteceğiz.Burada rand(1, $toplam); parantez içindeki değerlerin 1 ile $toplam satır arasında bir sayı üretmesini söyledik ve bunu $ID değişkenine atatık
$ID = rand(1, $toplam);
#    Veritabanımızda $ID değişkeninin sorguluyoruz
$SQL    = @mysql_query(”SELECT * FROM tabloadimiz where ID=’$ID’”);
#    Burada mysql_num_rows sorgusu yapıyoruz eğer $SQL sorgumuzda ID miz değer almışsa mysql_num_rows fonksiyonumuz 1 değerini alacaktır.Eğer ki yoksa 0 değerini alacaktır.Fakat biz burada < 1 diye bir değer atatık.Bu demek oluyor ki sonucu alana kadar sorgumuz dönecektir
}while(@mysql_num_rows($SQL) < 1);
#    Sonucumuzu burada alıyoruz
$echo = @mysql_num_rows($SQL);
#    Ve değişkenlerimize atıyoruz
$atanacak_deger = $yaz["veritabanindaki_hucre_ismi"];
print $atanacak_deger;

?>

Şimdi yazıya yorum yapabilir veya siteye geri bildirim gönderebilirsiniz..

“Php ile Mysql Veritabanından Rasgele Veri Çekmek” yazısı için 9 Yorum Yapılmış

  1. ibrahim soylu demiş ki:

    Ekim 27th, 2008 saat 11:41

    “SELECT * FROM tabloadimiz order by rand() limit 1″ şeklinde yapmanız daha doğru olacaktır. Böylecek tek sorgu ile halledebilirsiniz. İstenirse rastgele 10 kayıt çekilebilir. bunun için sorguyu limit 10 olarak değiştirmeniz yeterli olacaktır.

  2. Sercan Aydın demiş ki:

    Ekim 27th, 2008 saat 18:32

    Tabi dediğiniz gibide olabilir fakat rand fonksiyonu tek başına kullanıldığında rastgele sayılar çıkaracaktır.Buda ID si olmayan bir sayıya geldimi sorun çıkaracaktır .

  3. özgün makale demiş ki:

    Ekim 28th, 2008 saat 02:43

    nerelerde kullanilir peki ornek verebilir misiniz?

  4. Ahmet Ertürk demiş ki:

    Ekim 28th, 2008 saat 03:11

    @özgün makale
    Php ile bir blog tarzı bir sistem hazırladığınıza varsayarsak blogunuzdan rasgele 10 tane yazıyı ziyaretçilerinize sunmak için kullanabilirsiniz.

  5. Sercan Aydın demiş ki:

    Ekim 28th, 2008 saat 03:53

    Rasgele resim olabilir, rasgele atasözü, rasgele yazılar vs… Bir çok yerde kullanabilirsiniz

  6. özgün makale demiş ki:

    Ekim 28th, 2008 saat 14:27

    Anladım, teşekkürler

  7. osman ertuğrul demiş ki:

    Kasım 28th, 2008 saat 17:14

    rand(1,$toplam); yazıyor ama burada diyelimki 1. den 72. id kadar kayıt var fakat sadece 13. id deki veri silindiğini farz edeleim. rand ile veri çekerken problem olmaz mı?

  8. Özgür Kuru demiş ki:

    Aralık 12th, 2008 saat 14:49

    $yaz["veritabanindaki_hucre_ismi"]; şeklinde bir satır koymuşsunuz fakat
    kodlar arasında $yaz =mysql_fetch_assoc(..)
    şeklinde bir kod yok. bu $yaz["veritabanindaki_hucre_ismi"]; hangi sorgu sonucu hücre ismini alacak?

  9. Murat Kutay Özdemir demiş ki:

    Ocak 5th, 2009 saat 05:05

    Merhaba bu ornek le ilgili cok acil bir sıkıntım var ; isimler tablomda “bay” ,”bayan” alanlarından rasgele kelime cagırmam gerekiyor.
    bayan adı : $bayan , erkek adı : $bay gibi
    veri tabanımı olusturdum isim ekleyip silebiliyor duzenleye biliyorum ama bir turlu rasgele isim getiremedim çalışan bi örnek yaparsanız cok sevinirim

Yazıyı Yorumlayabilirsiniz

Sitemizde sizler için her geçen gün daha kaliteli yazılar hazırlanıp yayınlanmaktadır. Size daha kaliteli içerik sunmamız için lütfen iyi ya da kötü düşüncelerinizi bizimle paylaşınız.