如何将数据从数据库插入到阵列并进行检查

时间:2019-07-04 04:11:41

标签: mysql codeigniter

我需要在应用程序中修改视图,并且我具有表用户权限,其结构如下所示

 id_staff |     feature        |            capabilities           
    1              reports                       view                    
    1              reports                       create   
    1              reports                       edit              
    2              reports                       view                    
    2              reports                       delete                    
    3              reports                       view       

我需要的是像id_staff 3这样的用户,该用户在报表中仅具有一项功能,例如他只能查看,不能编辑,编辑或创建的示例。然后,用户ID 3仅看到超链接来查看页面,而他看不到用于创建,编辑或删除页面的超链接。

为此,我尝试使用选择查询,将其插入到数组中,然后将数组值进行比较以得到上述条件

我尝试过这样的代码

<?php 
  $query = $this->db->query('SELECT * FROM tblstaff_permissions WHERE staff_id='.$id.'');  
  foreach ($query->result() as $row)
  {  
    if($row['feature']=='reports' and $row['capabilities']=='view'){ 
      <a href="view.php">View</a> 
    } elseif($row['feature']=='reports' and $row['capabilities']=='delete' ){ 
      <a href="delete.php">Delete</a> 
    }
  }      
?>    

然后页面空白

您知道错误在哪里吗?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以通过减少诸如$row['feature']=='reports'这样的重复代码来改进它,例如:

$query = $this->db->query('SELECT * FROM tblstaff_permissions WHERE staff_id='.$id.'');  
foreach ($query->result_array() as $row)
{  

    if ($row['feature']=='reports') {
        if ($row['capabilities']=='view') {
            echo '<a href="view.php">View</a>';
        } elseif ($row['capabilities']=='delete') {
            echo '<a href="delete.php">Delete</a>';
        }
    }

}

要获取数组结果,请使用$query->result_array()而不是$query->result(),而且还会错过echo语句。

答案 1 :(得分:1)

您正在使用$ query-> result()它将给您一个对象数组,而不是数组数组。另外,您没有在视图上回显您的链接。还有一件你不应该重复使用相同条件的事情。

在这种情况下,您的代码应为-

<?php 
     $query = $this->db->query('SELECT * FROM tblstaff_permissions WHERE staff_id='.$id.'');  
     foreach ($query->result() as $row) { 
       if($row->feature =='reports'){ 
         if($row->capabilities=='view'){ 
            echo '<a href="view.php">View</a>';
         } elseif($row->capabilities == 'delete' ){ 
            echo '<a href="delete.php">Delete</a>';
         }
       }
     }      
?>