菜单权限错误


Menu Permission Error

这是我的表结构

require_once('../model/DBConfig.php');
$ob=new Connection();

menus
        ====
        menu_id       menu_name           menu_hyper    parent_id  
           1      Master Settings            #               0           
           2          Role                   #               0           
           3          Add Role           add_role.php        2           
           4          Staff              add_staff.php       1           

        menu_permission
        ===========
        id   staff_id       permission
        1      1              1,4,2,3
        2      2               2,3

<ul class="nav side-menu">

              <?php 
              $selquery=$ob->showDataall("select * from menu_permission where staff_id='".$_SESSION['user_id']."'");
              foreach($selquery as $nquery)
                {
                  foreach(explode(",",$nquery['permission']) as $mnu)
                    {
                        $mnquery=$ob->showDataall("select * from menus where menu_id='".$mnu."' and parent_id='0' and delet='0'");
                        foreach($mnquery as $value)
                            {
                                echo '<li><a href="'.$value['menu_hyper'].'"><i class="fa fa-bars"></i>' .$value['menu_name']. '</a></li>';
                            }
                    }
                }
              ?>
</ul>

结果是

主设置

警告:为G:''examplep''htdocs''live''Billing Suryas''include''pages''menu_left_bar.php中的foreach()提供的参数无效
角色
警告:为第44行的G:''examplep''htdocs''live''Billing Suryas''include''pages''menu_left_bar.php中的foreach()提供的参数无效

这是我的功能

public function showDataall($result) 
    {
        $q = $this->conn->prepare($result) or die("failed!");
        $q->execute();
        while ($r = $q->fetch(PDO::FETCH_ASSOC)) 
        {
            $data[] = $r;
        }
        return $data;
    }

您需要使用require_once('path/to/class');包含类,然后使用$ob = new className创建对象替换包含类的文件的路径和类的名称。如果这还不能解决问题,那么值得尝试

print_r($selquery);

查看阵列或的内容

var_dump($selquery);

检查它是否真的是一个数组。

您还在一个SQL查询中拼错了delete,并且数字不喜欢被"引号"包围