Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于检测用户是否是特定用户组成员的自定义代码存在小问题_Php_Mysql_If Statement_Usergroups - Fatal编程技术网

Php 用于检测用户是否是特定用户组成员的自定义代码存在小问题

Php 用于检测用户是否是特定用户组成员的自定义代码存在小问题,php,mysql,if-statement,usergroups,Php,Mysql,If Statement,Usergroups,我有下面的代码,它检测用户是否是某个Joomla用户组的成员,并显示用户的相关链接 这对于1个用户组非常有效,但是当一个用户是多个用户组的成员时,按钮会根据该用户所属的用户组数量重复 因此,例如,如果用户是4个用户组的成员,则按钮将显示4次(如果用户是用户组的成员,例如“Usergroup001”,则显示的4个按钮中的1个将是“开始”按钮(根据循环)) 我希望按钮只显示一次,不管用户是多少个用户组的成员 <?php $user_ = JFactory::getUser(); $db

我有下面的代码,它检测用户是否是某个Joomla用户组的成员,并显示用户的相关链接

这对于1个用户组非常有效,但是当一个用户是多个用户组的成员时,按钮会根据该用户所属的用户组数量重复

因此,例如,如果用户是4个用户组的成员,则按钮将显示4次(如果用户是用户组的成员,例如“Usergroup001”,则显示的4个按钮中的1个将是“开始”按钮(根据循环))

我希望按钮只显示一次,不管用户是多少个用户组的成员

<?php
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
foreach($user_->groups as $group){
$query  = 'SELECT title FROM #__usergroups';
$query .= ' WHERE id = ' . $group;
$db->setQuery( $query );
$grp = $db->loadResult();

if ($grp=='Usergroup001') : ?>
<a href="/start">Start</a>

<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>

<?php endif; ?>
<?php
}
?>

如果有人能帮上忙,请提前多谢

在数组中尝试

if(在数组($grp,'Usergroup001')):?>
也许这会奏效:

<?php 
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$isMember = false;
foreach($user_->groups as $group){
    $query  = 'SELECT title FROM #__usergroups';
    $query .= ' WHERE id = ' . $group;
    $db->setQuery( $query );
    $grp = $db->loadResult();
    if ($grp=='Usergroup001') { 
        $isMember = true; 
        break; 
    }
}
if ($isMember ) : ?>
    <a href="/start">Start</a>
<?php else : ?>
    <a href="/sign-up">Sign up to Usergroup 001</a>
<?php endif; ?>


Hi,非常感谢您的回复/帮助,尽管不幸的是按钮仍然显示(用户是用户组成员的次数(如果用户是4个用户组的成员,则按钮显示4次)…此外,如果用户是“Usergroup001”的成员,则您的代码没有提供正确的开始按钮。为了澄清您修改的代码,无论用户是否是该用户组的成员,所有按钮都是“注册”。对于这个坏消息,我深表歉意,非常感谢您的帮助!!!!!!!!!!!!!!!!!!!!!!!!!!!:@jimmywiddle try nowHi,是的,我确实发现了缺失的结束括号并添加了它,但我很抱歉地说,我担心它不起作用,再次感谢您的时间和帮助!!!完成了,再次感谢!我想知道,因为我需要在一个页面中运行此代码几次,我认为每次运行db查询都会占用大量资源,我正在尝试删除查询,但到目前为止运气不佳,再次感谢您的帮助!)再次感谢!
<?php 
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$isMember = false;
foreach($user_->groups as $group){
    $query  = 'SELECT title FROM #__usergroups';
    $query .= ' WHERE id = ' . $group;
    $db->setQuery( $query );
    $grp = $db->loadResult();
    if ($grp=='Usergroup001') { 
        $isMember = true; 
        break; 
    }
}
if ($isMember ) : ?>
    <a href="/start">Start</a>
<?php else : ?>
    <a href="/sign-up">Sign up to Usergroup 001</a>
<?php endif; ?>