• 27-12-2022, 19:44:42
    #1
    Selamlar,
    Categories isimli bir veritabanım var.
    "categories" veritabanında bulunan "permission_user_id" sütununda belirmiş olduğum user ID bulunuyorsa kullanıcıya kategoriyi gösteriyorum.

    "permission_user_id" sütununa virgül ile ayırıp farklı bir ID girdiğim zaman iki ID'de kategoriyi göremiyor.
    Bu konuyu nasıl çözebilirim?
    Kullanıcıya kategorileri listeletmek için kullandığım kodlar;

      <?php
        $query = "SELECT c.*
        FROM duyuru_sistemi.categories c
        JOIN test.users u ON c.permission_user_id = u.id";
        $result = mysqli_query($conn, $query);
    
        echo '<select class="form-select" id="category_id" name="category_id">';
        while ($row = mysqli_fetch_assoc($result)) {
          echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
        }
        echo '</select>';
      ?>
  • 27-12-2022, 20:01:18
    #2
    Kategoriye user tanimlamak yerine usere kategori gorme yetkisi vermeniz daha saglikli olur. Ama bu sekilde de soyle yapabilirsiniz. Virgul ile ayiriyorsaniz dizin haline getirip dizin icinde o idyi arayabilirsiniz. Veya explode ile her virgulu ayirip donguye alip donguyu dizin yapip orda arayabilirsiniz.
  • 27-12-2022, 23:05:00
    #3
    Bu daha mantıklı evet.



    $login = array(
        'id' => 1,
        'displayname' => 'QuarkChain',
        'display_category' => explode(',', '1,3,5'),
        'last_at' => time()
    );
    
    $categories = array(
        array('id' => 1, 'title' => 'Google Adsense'),
        array('id' => 2, 'title' => 'Google Optimazsyon'),
        array('id' => 3, 'title' => 'Google Adwors'),
        array('id' => 4, 'title' => 'eCommerce Yazılımları'),
        array('id' => 5, 'title' => 'Instagram')
    );
    
    foreach ($categories as $category) {
        // Kullanıcı sadece yetkili olduklarını görür
        if ( ! in_array($category['id'], $login['display_category'])) continue;
        echo $category['title'] . '<br />';
    }
    
    // Örneğin detay sayfası
    
    // $query.. yapıldı
    
    // Şu koşul kullanıcıyı kategoriden uzaklaştırabilir.
    (in_array($category['id'], $login['display_category']) OR redirect('izin_yok.php'));
    ebubekirgns adlı üyeden alıntı: mesajı görüntüle
    Kategoriye user tanimlamak yerine usere kategori gorme yetkisi vermeniz daha saglikli olur. Ama bu sekilde de soyle yapabilirsiniz. Virgul ile ayiriyorsaniz dizin haline getirip dizin icinde o idyi arayabilirsiniz. Veya explode ile her virgulu ayirip donguye alip donguyu dizin yapip orda arayabilirsiniz.