首页 > 解决方案 > 通过 PHP 访问 Joomla 用户组的问题

问题描述

作为一个新手,我正在努力调用一个变量,我有一个带有 WHERE 子句的 MySQL SELECT 查询:

WHERE table_name.j_group_id IN ('".$jgroup."')

但它不返回任何结果。table_name.j_group_id 是 11,如果我 print_r 它返回 $jgroup 数组:

数组( [0] => 1 [1] => 8 [3] => 2 [4] => 11 )

所以 11 在数组内,但为什么它不起作用?

如果我将 SELECT 查询更改为:

WHERE table_name.j_group_id IN (2, 11, 14, 18) it works as expected.

就像背景一样, $jgroup 返回 Joomla 用户授权组。我为每个团队创建了组,组 ID 已手动添加到表中的用户详细信息中,当团队管理员登录时,他们的组 ID(从 $jgroup 中获取)将匹配他们的团队成员(相同的组 ID ) 并且他们将可以访问他们的内容。这样我就可以有一个可编辑的页面,所有经理都可以访问,但只会显示该经理下的员工。

在此先感谢,我希望这是有道理的!

标签: phpmysqljoomla

解决方案


问题可能是由数组的格式引起的。

您可以尝试在将数组添加到查询中之前对其进行结构化。

$jGroupList = implode(",",$jgroup);
$query .= "WHERE table_name.j_group_id IN (".$jGroupList.")

对于调试类似的东西,打印出实际查询总是有帮助的,您的代码会创建一个测试。


推荐阅读