gpt4 book ai didi

mysql - 根据登录用户过滤结果(Joomla 3.2.2)

转载 作者:行者123 更新时间:2023-11-30 00:36:31 24 4
gpt4 key购买 nike

这是我的第一篇文章,所以我希望我使用了正确的地方.........

如果有人可以帮助解决这个问题,我将不胜感激。

我的网站上有一个数据表,需要对其进行自定义,以便根据登录用户分配到的用户组的访问级别仅显示允许的信息。这是我当前的查询,它显示当前登录用户根据注册电子邮件创建的记录。例如,如果我在“标准”用户组中有 5 个用户,他们每个人都创建一条记录,通过此查询,他们每个人都可以查看自己的记录,我需要的是如果用户位于“高级”用户组中,他们可以查看自己的记录以及“标准”用户组中的用户创建的任何记录。这是在 joomla 网站上,不确定这是否有什么区别,但所有访问级别都是由 CMS 定义的,我无法在查询中获得实际用户组的名称,因为会有很多不同的用户组,它需要根据登录用户的电子邮件地址/ID 查找用户组。

SELECT (CASE WHEN state = '1' THEN 'Accepted' WHEN state = '-2' THEN 'Waiting' WHEN state = '-1' THEN 'Archived' WHEN state = '0' THEN 'Rejected' ELSE 'Unknown' END) AS Status, s.names, s.phone, FROM_UNIXTIME(datetime1,'%d/%m/%y %T'), s.begin, s.PickupAddr1, s.end, s.PickupAddr4, s.message, s.selpassengers, s.selluggage, IF(s.returntrip=0, 'No', 'Yes'), IF(FROM_UNIXTIME(datetime2,'%Y') = '1970', NULL, FROM_UNIXTIME(datetime2, '%d/%m/%y %T')), tc.title AS Vehicle, s.cprice, pm.title As Payment, s.payment, s.selinfantseats, s.selchildseats, s.selboosterseats, s.selcarry, s.email, s.id, s.prepay, s.vehicletype FROM #__taxibooking_orders s
INNER JOIN #__taxibooking_cars tc ON tc.id = s.vehicletype
INNER JOIN #__taxibooking_paymentmethods pm ON pm.id = s.payment
WHERE s.email = {$UserEmail}

我需要修改它,以便显示的记录是由特定用户组中的任何人创建的记录。

记录创建者的引用是“taxibooking_orders”表的“email”字段用户组在“用户组”表中定义用户在“用户”表中定义,该表还有一个“电子邮件”字段

预先感谢您提供的任何帮助。

最佳答案

我还不知道 Joomla 3.2,但 Joomla 2.5 有一个表#__user_usergroup_map,它将用户 ID 映射到用户组 ID。因此,您必须像这样修改 WHERE 部分:

WHERE s.email={$UserEmail} AND s.id IN (SELECT user_id FROM #__user_usergroup_map WHERE group_id=<yourgroupid>);

=> 这是为了获取用户是否在用户组中的记录。如果您想为任何用户执行此操作,请跳过 s.email={$UserEmail} 部分。

尽管我同意 Elin 在这两种情况下使用 ID 而不是电子邮件地址。

关于mysql - 根据登录用户过滤结果(Joomla 3.2.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com