• 16-03-2022, 11:42:35
    #1
    Rasgele kategorilere göre makale çekmek istiyorum ama bir türlü başaramadım fonksiyon ile. Kodlarım aşağıdaki gibi sizce nerede hata yapıyorum?

        function rasgele(){
            global $db;
            global $kID;
    
            $sor=$db->prepare("SELECT * from makale where kategori=$kID ORDER BY RAND() LIMIT 3");
            $sor->execute();
            while ( $cekrand=$sor->fetch(PDO::FETCH_ASSOC)) {
    
                echo '<li class="blocks-gallery-item"><a href="#"><img class="border-radius-5" src="assets/imgs/makale/kucuk'.$cekrand['resimK'].'" alt=""></a></li>';
                
            }
            }
  • 16-03-2022, 11:45:43
    #2
    Global yerine kategorileri bir değişkene atayın alttaki sorguda WHERE kısmında değişkeni kullanın
  • 16-03-2022, 12:17:52
    #3
    kID değişkeni geliyor mu onu kontrol et ,
    daha mantıklısı fonksiyona bu değeri göndermek
    function rasgele($kID){
    ..............

    çağırırkende rasgele(3); örn. şeklinde çağır.

    En önemli hususda bu şekilde sorgu içinde kullanma parametre olarak ekle sorguna

    Örnek :
    $query ->$db->prepare("SELECT * FROM tabloadi WHERE id=:param_id AND ad=:param_ad");
    $query->bindParam(':param_id',$id);
    $query->bindParam(':param_ad',$ad); 
    $query->execute();
  • 16-03-2022, 12:20:44
    #4
    FaTe adlı üyeden alıntı: mesajı görüntüle
    kID değişkeni geliyor mu onu kontrol et ,
    daha mantıklısı fonksiyona bu değeri göndermek
    function rasgele($kID){
    ..............

    çağırırkende rasgele(3); örn. şeklinde çağır.

    En önemli hususda bu şekilde sorgu içinde kullanma parametre olarak ekle sorguna

    Örnek :
    $query ->$db->prepare("SELECT * FROM tabloadi WHERE id=:param_id AND ad=:param_ad");
    $query->bindParam(':param_id',$id);
    $query->bindParam(':param_ad',$ad); 
    $query->execute();
    Dediğin gibide Denedim Başarılı olamadım benim kodlarıma göre bir örnek yaparmısın döngü içinde
  • 16-03-2022, 12:26:32
    #5
    function rasgele($kategori_id){

    global $db;
    $sor=$db->prepare("SELECT * from makale where kategori=:kategori_id ORDER BY RAND() LIMIT 3");
    $sor->bindParam(':kategori_id',$kategori_id);
    $sor->execute();
    if ( $sor ->rowCount() ){
    foreach( $sor as $row ){
    echo '<li class="blocks-gallery-item"><a href="#"><img class="border-radius-5" src="assets/imgs/makale/kucuk'.$row['resimK'].'" alt=""></a></li>';
    }
    }

    }