两张表
sub_role_table(srt_id,id,role_id)id是用户Id,role_id是角色id
role_table(role_id,role_name) role_name是角色名称
现在要实现一个用户多个角色的修改在修改页面循环出所有的角色,然后该用户有什么角色,什么角色是默认选中的
源码如下
=======================================================
$sql="select * from role_table where role_id!=0"; 
$re=mysql_query($sql);$sql2="select * from sub_role_table where id='$id'"; 
$res=mysql_query($sql2);<?php
$showa = '';
while ($row=mysql_fetch_array($res)){
while ($roww=mysql_fetch_array($re)){
if($roww[role_id]==$row[role_id]) {
$showa .= "<input name=\"item[]\" type=\"checkbox\" value=\"$roww[role_id]\" checked>$roww[role_name]";
} else {
$showa .= "<input name=\"item[]\" type=\"checkbox\" value=\"$roww[role_id]\" >
$roww[role_name]";
}
}
}
print_r($showa);
?>
现在就是在用户本身有多个角色的情况下,显示的时候只显示用户的第一个角色是默认选中的,其他的角色不默认选中,希望各位大侠帮忙看看代码错那里了,让我实现这个默认复选框的选中问题

解决方案 »

  1.   


    <?php/* Created on [2012-5-17] */#所有信息
    $sql = "select * from role_table where role_id!=0";
    $re = mysql_query($sql);
    if (!$re)
    die("SQL:{$sql}<br>Error:" .
    mysql_error());
    if (mysql_affected_rows() > 0) {
    $allinfors = array ();
    while ($rows = mysql_fetch_array($re)) {
    array_push($allinfors, $rows);
    }
    }#要修改信息
    $sql2 = "select * from sub_role_table where id='$id'";
    $res = mysql_query($sql2);
    if (!$re)
    die("SQL:{$sql}<br>Error:" .
    mysql_error());
    if (mysql_affected_rows() > 0) {
    $editinfor = mysql_fetch_array($res);
    }
    ?><?php foreach($allinfors as $all){ ?>
    <input type="checkbox" name="item[]" value="<?=$all['role_id']?>" <?=($all['role_id']==$editinfor['role_id'])?"checked=checked":""?> /><?=$all['role_name']?>
    <?php } ?>