• 14-07-2019, 14:45:41
    #10
    _halisoglu_ adlı üyeden alıntı: mesajı görüntüle
    $sql = "SELECT sozler FROM makale ORDER BY RAND() LIMIT 1";
    Yukarıdaki sql sorgusu gibi bir sorgu ile random veri çekebilirsiniz. her sayfa yenilendiğinzde yeni bir söz çeker. Ama aynı söz arada tekrar edebilir. Tekrar etmemesini istiyorsanız ajax ile get yada post işlemi ile değer döndürerek yapabilirsiniz.
    Diyelim ki $_GET['id'] ile çalıştırdınız yapmanız gereken tamamen şu.
    $sql = "SELECT sozler FROM makale WHEE id!='".$_GET['id']."' ORDER BY RAND() LIMIT 1";
    Selamlar hocam,

    2. satırdaki kodda yanlışlıkla WHEE(*WHERE) yazmışısınız . Ek olarak GET işlemini kullanıldığınız yerlerde değişkeni kesinlikle korumaya almanızı tavsiye ederim SQL inj'a karşı. Ayrıca GET mevcut mu sorgulaması da yaptırılmalıdır.

    GET YOLU İLE YAPMAK İÇİN

    Sizin yazdığınız kodu evirirsem;

    Makalenin URL'sine ?id=MakaleID şeklinde bir bilgi girmen gerek. Atıyorum ki;

    siteadi.com/makale-adi?id=321

    Ardından;

    if (isset($_GET['id'])){
    $sql = "SELECT * FROM makale WHERE post_id='".intval($_GET['id'])."' ORDER BY RAND() LIMIT 1"; // ID değerlerinizin sadece numaralardan oluştuğunu varsayıyorum.
    }
    // foreach($sql as $randomsoz){ LIMIT 1 betiği verildiği için gereksiz.
    
    echo "<p>";
    echo "$sql->sozler";
    echo "</p>";
    
    // } Foreach kapatılması.
    Bu kod ne yapar, neyi var sayar?

    Bu kod makalede bir ek bir sql sütunu olduğunu var sayar ve bu sütuna "sozler" der. URL'den aldığı ID ile sql'de bir sorgu çektirir ve o spesifik post ID'sine ait olan veri tabanındaki "sozler" olarak girilen bilgileri çektirir.
    Kullanımı aslında daha kolaydır ancak ön hazırlık olarak yeni post yaratılırken ki panele ek bir custom field eklenmeli ve bu custom field'a girilen değerleri o ID'nin database'de "sozler" bölümüne yazılmalıdır.
  • 14-07-2019, 18:58:08
    #11
    flyingatm adlı üyeden alıntı: mesajı görüntüle
    Selamlar hocam,

    2. satırdaki kodda yanlışlıkla WHEE(*WHERE) yazmışısınız . Ek olarak GET işlemini kullanıldığınız yerlerde değişkeni kesinlikle korumaya almanızı tavsiye ederim SQL inj'a karşı. Ayrıca GET mevcut mu sorgulaması da yaptırılmalıdır.

    GET YOLU İLE YAPMAK İÇİN

    Sizin yazdığınız kodu evirirsem;

    Makalenin URL'sine ?id=MakaleID şeklinde bir bilgi girmen gerek. Atıyorum ki;

    siteadi.com/makale-adi?id=321

    Ardından;

    if (isset($_GET['id'])){
    $sql = "SELECT * FROM makale WHERE post_id='".intval($_GET['id'])."' ORDER BY RAND() LIMIT 1"; // ID değerlerinizin sadece numaralardan oluştuğunu varsayıyorum.
    }
    // foreach($sql as $randomsoz){ LIMIT 1 betiği verildiği için gereksiz.
    
    echo "<p>";
    echo "$sql->sozler";
    echo "</p>";
    
    // } Foreach kapatılması.
    Bu kod ne yapar, neyi var sayar?

    Bu kod makalede bir ek bir sql sütunu olduğunu var sayar ve bu sütuna "sozler" der. URL'den aldığı ID ile sql'de bir sorgu çektirir ve o spesifik post ID'sine ait olan veri tabanındaki "sozler" olarak girilen bilgileri çektirir.
    Kullanımı aslında daha kolaydır ancak ön hazırlık olarak yeni post yaratılırken ki panele ek bir custom field eklenmeli ve bu custom field'a girilen değerleri o ID'nin database'de "sozler" bölümüne yazılmalıdır.
    güzel kardeşim ben tamamen nasıl yazması gerektiğini değil mantığını anlattım güvenliğe alacağı almayacağı soruyu soran arkadaşı ilgilendirir. Burada laf yetiştirmek yada bak hata yapmışsın demek için yorum yazacağınıza arkadaşa yardımcı olunuz.
  • 14-07-2019, 21:46:19
    #12
    FSahin adlı üyeden alıntı: mesajı görüntüle
    PHP istemişsiniz ama onun yerine jQuery ile yapabilirsiniz aslında.

    https://jsfiddle.net/ferdisahin/jkght36b/
    İyi dek geldi. Teşekkürler 😀
  • 15-07-2019, 00:38:30
    #13
    _halisoglu_ adlı üyeden alıntı: mesajı görüntüle
    güzel kardeşim ben tamamen nasıl yazması gerektiğini değil mantığını anlattım güvenliğe alacağı almayacağı soruyu soran arkadaşı ilgilendirir. Burada laf yetiştirmek yada bak hata yapmışsın demek için yorum yazacağınıza arkadaşa yardımcı olunuz.
    Arkadaşa zaten yardımcı oldum, komutu anlattım. Size tek kurduğum cümle, uygun bir üslup ile şuydu: "Sanırım şunlar şunlar gözünüzden kaçmış." Bu kadar alınacağınızı bilseydim, yazmazdım. Özür dilerim.