貌似:
for($rows=0;$rows<$numrows;$rows++)
{
  $y[$rows]= mysql_fetch_array($result);
                                
}
<? if (in_array($s[innerId],$y[$rows]))
{?>checked<?}?>

解决方案 »

  1.   

    -_-!
    上面的貌似错了。
    你print_r($y)看看是不是有值吧
    怀疑没有把结果写入$y数组
      

  2.   

    <? if (in_array($s[innerId],$y[$rows]))
    {?>checked<?}?>
      

  3.   

    水清无鱼你好,根据你说的我改了一下,但出现奇怪问题,我做数据修改功能,现查出所有功能,如果角色已有此功能,就选中,现在如果此角色所有功能都有,执行正确,都选中了,但
    没有所有功能就出错:
    Warning: in_array() [function.in-array]: Wrong datatype for second argument in <?
                                   include("../include/conn.inc");
                                   $sql = "select * from rolefunc where roleid='".$_GET[roleid]."'";
                                    mysql_query("SET NAMES 'GBK'");
                                    $result = mysql_query($sql);
                                    if(!$result)
                                    {
                                     echo mysql_error();
                                    }
                                    $numrows = mysql_num_rows($result);
                                    if ($numrows>0)
                                    {
                                      for($rows=0;$rows<$numrows;$rows++)
                                    {
                                    $y[$rows]= mysql_fetch_array($result);                                }
                                    }                                $sql = "select * from function order by moduleid ASC";
                                    mysql_query("SET NAMES 'GBK'");
                                    $result = mysql_query($sql);
                                    //$data=mysql_fetch_array($result);
                                    $numrows = mysql_num_rows($result);
                                    $i=1;
                                    if($numrows>0)
                                    {
                                    for($rows=0;$rows<$numrows;$rows++)
                                    {
                                    $s = mysql_fetch_array($result);
                                   ?>
                                   <td align="left" style="font-size: 12px; cursor: default"><input type="checkbox" name="roleadd[]" value="<? echo $s[innerId]; ?>" <? if (in_array($s[innerId],$y[$rows])){?>checked<?}?>>&nbsp;<? echo $s[funcname]; ?></td>
                                   <?
                                   if((is_int($i/5)))
                                   {
                                    echo "</tr><tr>";
                                   }
                                   $i++;
                                   }
                                   }
                                   mysql_close($connect);
                                   ?>
    帮我看看好吗,谢谢!
      

  4.   

    <td align="left" style="font-size: 12px; cursor: default"><input type="checkbox" name="roleadd[]" value="<? echo $s[innerId]; ?>" <? if (in_array($s[innerId],$y[$rows])){?>checked<?}?>>&nbsp;<? echo $s[funcname]; ?></td>--》$s[innerId] 这个是什么东西?$s['innerId']?$s[$innerId]?
      

  5.   

    $row=mysql_fetch_array($result);
    for($rows=0;$rows<$numrows;$rows++)
    {
      $y[$rows]= $row["id"];  ///////////////////这里应该是加上字段名
                                    
    }
    <? if (in_array($s[innerId],$y))
    {?>checked<?}?>
    然后ok!
      

  6.   

    还有$_GET[roleid] $s[funcname]……错得还挺没谱的
      

  7.   

    真晕了,被你的程序误导了。
    给个例子看吧:
    <? 
    $sql="select * from table where name='joke'";
    $result=mysql_query($sql);
    while($row=mysql_fetch_array($result)){
    $y[]= $row["id"];
    }
    print_r($y);
    ?>
    这个$y就是这个玩家的拥有的功能组成的数组。
      

  8.   

    ………………………………………………………………我说啊!PHP中的数组的灵活程度,已经让我受益匪浅了啊!!楼主的做法根本不可去啊~while($rows=$mydb->rows()){$array[]=$rows}如果你使用的$mydb就是一个数据库操作类构造而成,rows()是数据库操作类的一个函数,$array就会自动生成为二位数组!以上只是一个例子,非常的简单。但是说明了一个问题,php中的数组,可以自动简历高一维的数组,是自动建立啊!!明白了么?根本不需要我们进行设置的说!