• 09-07-2020, 15:35:37
    #1
    uye rol roller adında 3 tablom var. Roller tablosunda üyeleri rollerle ilişkilendiriyorum

    Sorunum şu aynı kişiye birden fazla rol atadığımda ilk atana rol admin değilse admin paneline giriş yapamıyor yani benim giriş şartımı
    eğer 1 id li üyenin rolid leri arasında 1 var ise buraya giriş yapmasına izin ver demem lazım
    kullandığım şart if($rolbul["rolid"] != 1) bu bunu nasıl yapabilirim ?

    Kullandığım fonksiyon
    $uye_id = $_SESSION['id'];
    $rolbul = $db->select('rolatama')
    ->where('uyeid', $uye_id)
    ->run(TRUE);
  • 09-07-2020, 15:40:21
    #2
    rolid değerini json olarak tutarsınız örneğin {1,2} veya {1} gibi php de kontrol ettirirken önce json_decode yaparsınız giriş yapılan kullanıcının rolid değerini çekersiniz if(in_array($rolArray, 1)) ile de kontrol edersiniz hocam mobildeyim o yüzden kod yazamıyorum 😂
  • 09-07-2020, 15:41:15
    #3
    Üye tablosuna üye türü eklerseniz daha doğru ama illa bu şekilde yapacaksanız önce id yi roller tablosunda sorgulayıp left join ile User tablosuna bağlayın. O zaman sorun kalmayacaktır.
  • 09-07-2020, 15:43:44
    #4
    Kaplan adlı üyeden alıntı: mesajı görüntüle
    Üye tablosuna üye türü eklerseniz daha doğru ama illa bu şekilde yapacaksanız önce id yi roller tablosunda sorgulayıp left join ile User tablosuna bağlayın. O zaman sorun kalmayacaktır.
    Bende öyle yapıyordum yalnız böyle yapmam gerekti bu sefer hocam
  • 09-07-2020, 15:54:51
    #5
    Üyeliği durduruldu
    sadece rolid çekin dbden ondan sonra rolid yi alırken GROUP_CONCAT(tablo_adi.roladi SEPARATOR ',') as roller şeklinde alın bunu yaptıktan sonra ise

    <?php
       $roller = explode(',',$select->roller);
    if(in_array(1,$roller){
     true;
    }else{
     false
    }
    ?>
  • 09-07-2020, 16:23:44
    #6
    $uye_id = $_SESSION['id'];
    $adminid = 1;
    $rolbul = $db->select('rolatama')
    ->where('uyeid', $uye_id)
    ->where('rolid', $adminid)
    ->run(TRUE);

    Şeklinde aratıp yaptım arkadaşlar