这是代码(有问题):
<?
function f_get_qx()
{
        $host = "localhost";
        $user = "root";
        $password = "";
        $database = "test";
        $db_link = mysql_pconnect($host, $user, $password);
        if (!@mysql_select_db($database))
      {
        echo "程序检测到,不能选择的数据库 $database";
        return 0;
      }
   $sql1 = "select count(*) as rowcount from s_modes where users='yjq'and modes='1'";
   $result = mysql_query($sql1);
   $row = mysql_fetch_array($result);
   for ($i = 1 ; $i<=$row['rowcount'] ; $i++)
   {
            $menuid = $i+10;
            $sql2 = sprintf("select sun_name,menu_url,freedom from s_freedom t1 left join s_modes t2 on t1.menu_id = t2.menu_id where t2.menu_id='%d'",$menuid);
               $result2 = mysql_query($sql2);
               while($row2 = mysql_fetch_array($result2))
               {
                         $r_sun_name[] = $row2['sun_name'];
                       $r_menu_url[] = $row2['menu_url'];
                       $r_freedom[] = $row2['freedom'];               }               $menus = "mpmenu$i=new mMenu('业务管理','','self','','','','');";
               $menus .="mpmenu$i=new mMenu('统计查询','','self','','','','');";
               foreach ($r_sun_name as $key=>$value)
               {
            if ($r_freedom[$key]== 1)
               {
                       //为什么$i取不到1                $menus .="mpmenu$i.addItem(new mMenuItem('$value','$r_menu_url[$key]','self',false,'门诊收费窗口','','','',''));";               }               }
    }
            $menus .= "mwritetodocument();";
                       $menus .="</script>";
                       echo $menus;
 }
?>
<html>
<head>
<title>测试菜单的全县系统</title>
</head>
<body>
<?
f_get_qx();?>

解决方案 »

  1.   

    $menus = "mpmenu$i=new mMenu('业务管理','','self','','','','');";
    $menus .="mpmenu$i=new mMenu('统计查询','','self','','','','');";
    应该改成
    $menus .= "mpmenu$i=new mMenu('业务管理','','self','','','','');";
    $menus .="mpmenu$i=new mMenu('统计查询','','self','','','','');";
    你原来的运行到$i==2时$menus被重新赋值了
      

  2.   

    sql指令有误
    create table s_modes(
    users varchar(20) not null,
    modes varchar(10) not null,
    menu_id smallint(2) not null primary key,
    menu_name varchar(20) not null
    );
    insert into s_modes values('yjq','1','11','业务管理');
    insert into s_modes values('yjq','1','12','统计查询');create table s_freedom(
    menu_id smallint(2) not null,
    sun_id    int(4) not null primary key,
    sun_name  varchar(20) not null,
    php_url   varchar(20) ,
    freedom   tinyint(1) not null
    );
    insert into s_freedom values('11','1101','门诊收费','mzsf.php','1');
    insert into s_freedom values('11','1102','发票做费','fpzf.php','1');
    insert into s_freedom values('12','1201','当日发票','drfp.php','1');
    insert into s_freedom values('12','1202','历史发票','lsfp.php','1');function f_get_qx() {
      $host = "localhost";
      $user = "root";
      $password = "";
      $database = "test";
      $db_link = mysql_pconnect($host, $user, $password);
      if (!@mysql_select_db($database)) {
        echo "程序检测到,不能选择的数据库 $database";
        return 0;
      }  $menus = "<script>\n";
      $sql1 = "select * from s_modes where users='yjq' and modes='1'";
      $result = mysql_query($sql1);
      $i = 1;
      while($row = mysql_fetch_array($result)) {
        $menu_id = $row[menu_id];
        $menus .= "mpmenu$i=new mMenu('$row[menu_name]','','self','','','','');\n";
        $sql2 = "select * from s_freedom where menu_id=$menu_id";
        $result2 = mysql_query($sql2);
        while($row2 = mysql_fetch_array($result2)) {
          $r_sun_name = $row2['sun_name'];
          $r_php_url = $row2['php_url'];
          $r_freedom = $row2['freedom'];
          $menus .="mpmenu$i.addItem(new mMenuItem('$r_sun_name','$r_php_url','top',false,'{$r_sun_name}窗口','','','',''));\n";
        }
        $i++;
      }
      $menus .= "mwritetodocument();\n";
      $menus .="</script>";
      echo $menus;
    }输出结果
    <script>
    mpmenu1=new mMenu('业务管理','','self','','','','');
    mpmenu1.addItem(new mMenuItem('门诊收费','mzsf.php','top',false,'门诊收费窗口','','','',''));
    mpmenu1.addItem(new mMenuItem('发票做费','fpzf.php','top',false,'发票做费窗口','','','',''));
    mpmenu2=new mMenu('统计查询','','self','','','','');
    mpmenu2.addItem(new mMenuItem('当日发票','drfp.php','top',false,'当日发票窗口','','','',''));
    mpmenu2.addItem(new mMenuItem('历史发票','lsfp.php','top',false,'历史发票窗口','','','',''));
    mwritetodocument();
    </script>
      

  3.   

    需要修改成
    <?
    function f_get_qx()
    {
            $host = "localhost";
            $user = "root";
            $password = "dept3721";
            $database = "6300online";
            $db_link = mysql_pconnect($host, $user, $password);
            if (!@mysql_select_db($database))
          {
            echo "程序检测到,不能选择的数据库 $database";
            return 0;
          }
       $sql1 = "select * from s_modes where users='yjq'and modes='1'";
       $result = mysql_query($sql1);
       $i=0;
       while ($row = @mysql_fetch_array($result))
       {$i+=1;
                $menuid = $i+10;
                $sql2 = sprintf("select sun_name,php_url,freedom from s_freedom t1 left join s_modes t2 on t1.menu_id = t2.menu_id where t2.menu_id='%d'",$menuid);
                   $result2 = mysql_query($sql2);
     //echo $sql2;
                   while($row2 = mysql_fetch_array($result2))
                   {
                             $r_sun_name[] = $row2['sun_name'];
                           $r_menu_url[] = $row2['menu_url'];
                           $r_freedom[] = $row2['freedom'];               }               $menus.= "mpmenu$i=new mMenu('$row[menu_name]','','self','','','','');";
       reset ($r_sun_name);
                   foreach ($r_sun_name as $key=>$value)
                   {
                if ($r_freedom[$key]== 1)
                   {
                           //为什么$i取不到1                $menus .="mpmenu$i.addItem(new mMenuItem('$value','$r_menu_url[$key]','self',false,'门诊收费窗口','','','',''));";               }               }
        }
                $menus .= "mwritetodocument();";
                           $menus .="</script>";
                           echo $menus;
     }
    ?>
    <html>
    <head>
    <title>测试菜单的全县系统</title>
    </head>
    <body>
    <?
    f_get_qx();?>