通过PHP访问Joomla用户组时出现问题



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

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

但是它不返回任何结果。table_name.j_group_id是11,如果我打印$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(匹配,他们将可以访问他们的内容。这样我就可以有一个可编辑的页面,所有经理都可以访问,但只显示该经理下的员工。

提前谢谢,我希望它有意义!

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

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

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

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

谢谢Chris,我刚刚又看了一遍,找到了解决方案;

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

已经奏效了,不过谢谢你花时间回答。

最新更新