繁体   English   中英

在复选框 php 中显示逗号分隔的数组值

[英]Displaying comma delimited array values into checkbox php

我正在尝试在我的脚本中提供基于角色的访问权限。 这是我的代码和表格的示例

我想以复选框格式显示用户可以访问的页面。 我试着喜欢这个

$sql = "SELECT p.page_id AS pid, 
               p.page, 
               p.link, 
               ra.pages AS rpage 
        FROM pages p 
        INNER JOIN role_access ra 
        WHERE p.page_id IN (ra.pages) AND ra.role=1";

$query = mysqli_query($con, $sql) or die(mysqli_error($con));

$checked_arr = array();
while($row = mysqli_fetch_array($query)) { 
$checked_arr = explode(",",$row['rpage']);

foreach ($checked_arr as $page) {

    echo "<br/><input type='checkbox' name=\"pages[]\" value='$page' />$page<br>";
}

对于var_dump($row['page'])显示这样string 'New' (length=3)只有一页被显示。

它给了我带有 page_id 的复选框,但我想在每个复选框的前面显示 p.page 值。 怎么做?

这是我的表结构。

页表

 page_id     |  page    |  link
    1        |  New     |  new.php
    2        |  Edit    |  edit.php
    3        |  Details |  details.php
    4        |  Report  |  export.php

角色表

role_id  | role_name
1        | Admin
2        | User1

角色访问表

id  |   pages    | role
1   |   1,2,3,4  | 1
2   |   3,4      | 2 

我已经像这样规范化了 role_access 表

rid  |  page_id  | role
1    |  1        | 1
2    |  2        | 1
3    |  3        | 1
4    |  4        | 1
5    |  1        | 2
6    |  3        | 2 

并得到了我想要的 output

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM