三个表联合操作
role module functionselect r.functionId, f.moduleId, f.name, m.name AS mname
from role as r
left join function as f on r.functionId=f.id
left join module as m on f.moduleId=m.id
where role.userId=3;
order by f.moduleId结果为根据moduleId排好序的记录,
$first = $db->fetchRow();
//记录当前操作的模块ID
$currentModule = $firist['moduleId'];
echo "<h4>".$first['mname']."</h4>";
echo "<ul>";
while($row = $db->fetchRow()){
if($row['moduleId'] != $currentModule)
{
echo "</ul>";
echo "<h4>".$row['mname']."</h4>";
echo "<ul>";
$currentModule = $row['moduleId'];
}
echo "<li>".$row['name']."</li>";}
echo "</ul>";
role module functionselect r.functionId, f.moduleId, f.name, m.name AS mname
from role as r
left join function as f on r.functionId=f.id
left join module as m on f.moduleId=m.id
where role.userId=3;
order by f.moduleId结果为根据moduleId排好序的记录,
$first = $db->fetchRow();
//记录当前操作的模块ID
$currentModule = $firist['moduleId'];
echo "<h4>".$first['mname']."</h4>";
echo "<ul>";
while($row = $db->fetchRow()){
if($row['moduleId'] != $currentModule)
{
echo "</ul>";
echo "<h4>".$row['mname']."</h4>";
echo "<ul>";
$currentModule = $row['moduleId'];
}
echo "<li>".$row['name']."</li>";}
echo "</ul>";
解决方案 »
- Warning: mysql_fetch_array() expects parameter 1 to be resource
- swfupload的问题~请高手指点
- 判断日期和时间
- 100分求解 smarty 的 register_function 函数
- 求助!!!怎么把变量传递到用window.open()打开的窗口?拜托各位大哥了!!!
- explode分割字符串后,怎么循环取出分割后的字符!
- 如何控制输出字符窜的长度??在线等待!!
- windows下配PHP的多不多?
- 如何在PHP中新建一网页,地址由变量指定,不同语言之间的变量传递!
- php 使用ajax发送密码过去,接收端发现密码被裁剪了
- php如何实现跨站点
- 关于ZDE中调用mysql函数方面的问题,请各位大侠指点
innerid int(6) 自增id
username varchar(8) 用户名
name varchar(8) 姓名
bankid int(6) 单位id
deptid int(6) 部门id
mima 密码用户角色表(userrole):
innerid int(6) 自增id
userid int(6) 用户id
roleid int(6) 角色id
beizhu 备注角色功能表(rolefunc):
innerid int(6) 自增id
roleid int(6) 角色id
funcid int(6) 功能id
beizhu 备注功能表(function):
innerId int(6) 自增id
funcno int(4) 功能编号
funcname varchar(40) 功能中文名
funcename varchar(40) 功能英文名
moduleid int(4) 模块id
url 链接地址模块表(module):
innerid int(4) 自增id
moduleno int(4) 模块编号
modulename varchar(40) 模块中文名
moduleename varchar(40) 模块英文名涉及五个表,下面是我做的二级菜单:<? include("include/header.inc"); ?>
<html>
<head>
<link href='include/menu.css' rel=stylesheet>
<script language="javascript">
function change_view(obj_name)
{
var aa=document.getElementById(obj_name);
if(aa.style.display=="")
{
aa.style.display="none";
}
else
{
aa.style.display="";
}
}
</script></head><body background="images/oa_bg.gif" scroll="no"><p> </p><table border="0" width="165" id="table1" cellpadding="2">
<?php
//$Con = mysql_connect("localhost","root","hcedagb");
include("include/conn.inc");
mysql_select_db("icbcoa");//提取一级菜单
$sql = "select * from module order by moduleno";
//mysql_query("SET NAMES 'GBK'");
$result = mysql_query($sql,$connect);
$numrows = mysql_num_rows($result);
for($rows=0;$rows<$numrows;$rows++)
{
//将当前菜单项目的内容导入数组
$menu = mysql_fetch_array($result);
?>
<tr onClick="change_view(<? echo $menu[moduleno];?>)">
<td width="15">
<img border="0" src="file:///D:/icbcoa/images/folder.gif" width="16" height="16"></td>
<td width="135"><? echo $menu[modulename];?></td>
</tr>
<tr id="<? echo $menu[moduleno];?>" style="display:none">
<td width="119" colspan="2">
<?
$sql = "select * from function where moduleid=$menu[innerid] order by funcno";
//mysql_query("SET NAMES 'GBK'");
$result_sub = mysql_query($sql,$connect);
$numrows_sub = mysql_num_rows($result_sub);
?>
<table border="0" id="table2" width="157">
<?
for($rows_sub=0;$rows_sub<$numrows_sub;$rows_sub++)
{
$menu_sub = mysql_fetch_array($result_sub);
?>
<tr>
<td width="12"> </td>
<td width="15">
<img border="0" src="file:///D:/icbcoa/images/child.gif" width="15" height="15"></td>
<td><a href="<? echo $menu_sub[url];?>" target="main"><? echo $menu_sub[funcname];?></a></td>
</tr> <?}?>
</table>
<?}?>
</td>
</tr>
</table></body></html> 我现在想根据用户角色,显示菜单,涉及5张表,想不明白了!
看都看乱了!