$parentId = 0;//默许就是 0 此句不必写
// id 设置为主动增加
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(0,0,$name,[其他字段]);
//if(!empty($parentId)):
SELECT @classStr:=CONCAT(classStr,',',id) FROM class WHERE id=$parentId; //CONCAT 毗连字符串
INSERT INTO class(classStr,parentId,name,[其他字段]) VALUES(@classStr, $parentId, $name, [其他字段]);
判别 id 是不是在 session(user['power']) 中
是:经由过程
否:办理形式 0:
SELECT @classStr:=classStr FROM class WHERE id = $id
//判别以后类的 分类字符串 是不是包括 user[id] 所办理的任何一个分类 是 则经由过程 申明以后分类是子分类
SELECT <任何字段> FROM class WHERE @classStr LIKE CONCAT('%',id,'%') AND masterId = session(user[id])
假如前往的纪录集不为空 则经由过程。
并 user['power'] .= $id;
办理形式 1:
//判别 以后用户是不是在 以后类办理员列表中 是 则经由过程。
SELECT <任何字段> FROM class WHERE masterId LIKE CONCAT('%',user['id'],'%') AND id = $id
假如没有经由过程:
errNo = n;
include(error.php)
/*********** function **********************************************/
//失掉一个需求的纪录集
function getResult(rootId,tree){
//参数申明:
//rootId 要显示分类的根节点的 id 即显示一切 rootId 的子节点
//tree 是不是全体睁开
if(empty($rootId)) $rootId = 0;
if(tree=false){ // 只列出一层
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%') AND classStr NOT LIKE CONCAT(@classStr, ',', '%,%');
}
if(tree=true){ //列出整棵树
strSQL =
SELECT @classStr:=classStr FROM class WHERE id=$rootId;
SELECT name,classStr,[其他字段] FROM class
WHERE classStr LIKE CONCAT(@classStr, ',', '%')
}
return mysql_quary(strSQL);
}