php - 使用不同权限的php进行搜索

标签 php mysql search

有一个项目目录。每个项目都位于类别下。对于每个类别,我们可以拥有具有不同权限的用户(管理员、专家、用户)。当我们添加一个项目时,我们选择可见性: (1) - 所有人可见 (2) - 仅对发布此项目的类别的管理员和专家可见 (3) - 该项目发布的类别的所有成员都可见 (0) - 对所有人隐藏(只有创建者可以看到)。

假设我有 500 个标题中带有“键盘”一词的项目。其中大多数属于不同的类别。这 500 项中只有 1 项具有隐私 - 2(该类别的专家和管理员可见)并且位于类别“Logitech”下。当我作为“Logitech”类别的管理员在搜索中输入“键盘”时,我应该看到搜索找到了 500 个项目,并向我显示其中 10 个。如果只是普通用户(不是管理员或专家),在他将看到的搜索中键入“键盘”,搜索找到 499 个项目,并向他显示这 499 个项目中的 10 个。

抓取 20 个项目而不是 10 个项目并检查每个项目的隐私,然后在搜索结果中仅显示 10 个项目是唯一可能的解决方案吗?但是如果这 20 个都“对用户隐藏”怎么办?

预先感谢您的回复。

数据库草图:

1)items[id、标题、category_id、可见性]

2) 类别:[id, 标题]

3)category_user[id,user_id,category_id,角色(专家,管理员,用户)]

4) 用户[id, 名称]

最佳答案

像这样的事情可能会起作用:

SELECT i.*,c.*,cu.*u.*
FROM items i,categories c, category_user cu, user u
WHERE i.title LIKE '%$search%'
AND i.category_id=c.id
AND cu.category_id=c.id
AND u.id=cu.user_id
AND cu.role='expert'
AND i.visibility=1

根据用户数据更改 cu.role 和 i.visbility。

关于php - 使用不同权限的php进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11884310/

相关文章:

php - 清除静态内容缓存后主题损坏 - Magento 2

php - 如何在 Laravel 中划分读/写数据库设置?

mysql - 如何排除列出现在结果中?

flutter - 如何在 flutter Bottom Sheet 中过滤搜索

Java 顺序搜索在匹配时不返回 true

php - 用什么? time() 函数或 $_SERVER ['REQUEST_TIME' ] ?哪个更好?

javascript - 如何使用php查找html中的元素?

php - mysql 查询更新与 php

Mysql多对多问题(排行榜/记分牌)

ios - 位置搜索 : Specific Address vs local businesses