使用PHP&;更新复选框值;MySQL

使用PHP&;更新复选框值;MySQL,php,mysql,Php,Mysql,表: Iam从PHP表单存储所有这些信息 role_id role_name perm_id 1 admin 0 2 Manager 0 7 Accounts Assitant 4,6 8 Registrar 2,5,6 角色 权限 我的帐户 编辑帐户 更改密码 用户列表 定义角色 分

表:

Iam从PHP表单存储所有这些信息

role_id   role_name              perm_id
  1         admin                  0
  2         Manager                0
  7         Accounts Assitant      4,6
  8         Registrar              2,5,6

角色
权限
我的帐户
编辑帐户
更改密码
用户列表
定义角色
分配角色
我成功地将数据提交到数据库,从数据库检索复选框值时出现问题。 现在我想编辑这个表单并显示复选框(选中的和取消选中的)


当我执行编辑表单时,复选框会重复出现。建议我哪里做错了,或者指导我做其他事情

非常感谢您:

<?php
    $query = $db->prepare("SELECT * FROM role WHERE role_id = ".$role_id." ");
    $query->execute();
    foreach($query as $q)
    {
      echo '<form action="" method="post">               
             <table>
              <tr><th>ROLE</th>
                  <th>PERMISSIONS<br><input type="checkbox" class="chk_boxes"></th>  
              </tr>
              <tr><td><input type="text" value="'.$q['role_name'].'" name="role_name" required></td>
                  <td>';
                      $permid_array = $q['perm_id'];                                          
                      foreach(explode(',', $permid_array) as $n)
                      {
                        if ($n == 1 || $n == 2 || $n == 3 || $n == 4 || $n == 5 || || $n == 6) { $set_checked = "checked";}
                        else {$set_checked = ""; }

                        echo '
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="1" '.$set_checked.' > My Account<br> 
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="2" '.$set_checked.' > Edit Account<br>
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="3" '.$set_checked.' > Change Password<br>
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="4" '.$set_checked.' > List of users<br>
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="5" '.$set_checked.' > Define roles<br>
                        <input type="checkbox" class="chk_boxes1" name="perm[]" value="6" '.$set_checked.' > Assign roles<br>';
                      }
                   echo '</td></tr>
             </table>
             <div><input type="submit" name="submit" value="create role"></div>
            </form>';
    }
  ?>
echo'
我的帐户
编辑帐户
更改密码
用户列表
定义角色
分配角色
';
对于每个perm_id。如果你有2,4个perm_id,你会这样做两次。如果你有2,你只会做一次,如果你有1,2,3,4,5,6,你会做6次

您可以通过在每个值上循环来轻松解决此问题:

echo '
<input type="checkbox" class="chk_boxes1" name="perm[]" value="1" '.$set_checked.' > My Account<br> 
<input type="checkbox" class="chk_boxes1" name="perm[]" value="2" '.$set_checked.' > Edit Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="3" '.$set_checked.' > Change Password<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="4" '.$set_checked.' > List of users<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="5" '.$set_checked.' > Define roles<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="6" '.$set_checked.' > Assign roles<br>';
$arr=数组(1,2,3,4,5,6);
$arrNames=array(‘我的帐户’、‘编辑帐户’、‘更改密码’、‘用户列表’、‘定义角色’、‘分配角色’);
外汇($arr作为$val){
$set_checked=“”;
if(在数组中($val,$permit_数组)){
$set_checked=“checked”;
}
回显'.$arrNames[$val].
' } }
如果您想坚持原来的解决方案,则需要更改以下内容:

$arr = array(1,2,3,4,5,6);
$arrNames = array('My Account', 'Edit Account', 'Change Password', 'List of users', 'Define roles', 'Assign Roles');
foreach($arr as $val) {
    $set_checked = "";
    if(in_array($val, $permid_array)) {
        $set_checked = "checked";
    }
    echo '<input type="checkbox" class="chk_boxes1" name="perm[]" value="$val" '.$set_checked.' > '.$arrNames[$val].' <br>'

    }
}
$permid_array=explode(',',$q['perm_id']);
回声'
我的帐户
编辑帐户
更改密码
用户列表
定义角色
分配角色
';
谢谢您的帮助。没问题!祝你好运
$arr = array(1,2,3,4,5,6);
$arrNames = array('My Account', 'Edit Account', 'Change Password', 'List of users', 'Define roles', 'Assign Roles');
foreach($arr as $val) {
    $set_checked = "";
    if(in_array($val, $permid_array)) {
        $set_checked = "checked";
    }
    echo '<input type="checkbox" class="chk_boxes1" name="perm[]" value="$val" '.$set_checked.' > '.$arrNames[$val].' <br>'

    }
}
 $permid_array = explode(',', $q['perm_id']);                                          
 echo '
<input type="checkbox" class="chk_boxes1" name="perm[]" value="1" '.(in_array(1, $permid_array))?'checked':''.' > My Account<br> 
<input type="checkbox" class="chk_boxes1" name="perm[]" value="2" '.(in_array(2, $permid_array))?'checked':''.' > Edit Account<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="3" '.(in_array(3, $permid_array))?'checked':''.' > Change Password<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="4" '.(in_array(4, $permid_array))?'checked':''.' > List of users<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="5" '.(in_array(5, $permid_array))?'checked':''.' > Define roles<br>
<input type="checkbox" class="chk_boxes1" name="perm[]" value="6" '.(in_array(6, $permid_array))?'checked':''.' > Assign roles<br>';