//首先从数据库中获取父子节点树
function region_array( $DEPT_PARENT, $DEPARTMENT = array( ), $DEPT_LEVEL = 0 )
{
global $connection;
global $DEPT_LINE;
$DEPT_LINE1 = $DEPT_LINE;
$DEPT_LINE .= "│";
$COUNT = 0;
++$DEPT_LEVEL;
$query = "SELECT region_id,region_name,parent_id from osg_region where parent_id='".$DEPT_PARENT."' order by region_id";
$cursor = exequery( $connection, $query );
while ( $ROW = mysql_fetch_array( $cursor ) )
{
++$COUNT;
$DEPT_ID = $ROW['region_id'];
//$DEPT_NO = $ROW['DEPT_NO'];
$DEPT_NAME = $ROW['region_name'];
$DEPT_PARENT = $ROW['parent_id'];
//$IS_ORG = $ROW['IS_ORG'];
$DEPT_NAME = str_replace( "\"", "\\\"", $DEPT_NAME );
if ( array_key_exists( $DEPT_PARENT, $DEPARTMENT ) )
{
$DEPT_LONG_NAME = $DEPARTMENT[$DEPT_PARENT]['DEPT_LONG_NAME']."/".$DEPT_NAME;
}
else
{
$DEPT_LONG_NAME = $DEPT_NAME;
}
$POSTFIX = _( " " );
if ( $COUNT == mysql_num_rows( $cursor ) )
{
$DEPT_LINE = substr( $DEPT_LINE, 0, 0 - strlen( $POSTFIX ) ).$POSTFIX;
}
if ( $COUNT == mysql_num_rows( $cursor ) )
{
$DEPT_LINE2 = $DEPT_LINE1."└";
}
else
{
$DEPT_LINE2 = $DEPT_LINE1."├";
}
$DEPARTMENT[$DEPT_ID] = array(
"DEPT_NAME" => $DEPT_NAME,
"DEPT_PARENT" => $DEPT_PARENT,
//"DEPT_NO" => $DEPT_NO,
"DEPT_LEVEL" => $DEPT_LEVEL,
"DEPT_LONG_NAME" => $DEPT_LONG_NAME,
//"IS_ORG" => $IS_ORG
);
$DEPARTMENT_STR .= " \"".$DEPT_ID."\" => array(\"DEPT_NAME\" => \"{$DEPT_NAME}\", \"DEPT_PARENT\" => {$DEPT_PARENT}, \"DEPT_NO\" => \"{$DEPT_NO}\", \"DEPT_LEVEL\" => {$DEPT_LEVEL}, \"DEPT_LONG_NAME\" => \"{$DEPT_LONG_NAME}\", \"IS_ORG\" => \"{$IS_ORG}\",
\"DEPT_LINE\" => \"{$DEPT_LINE2}\"),\n";
$DEPARTMENT_STR .= dept_array( $DEPT_ID, $DEPARTMENT, $DEPT_LEVEL );
}
$DEPT_LINE = $DEPT_LINE1;
return $DEPARTMENT_STR;
}
//设置memcache缓存
function cache_region( )
{
global $td_cache;
global $SYS_REGION;
$DEPARTMENT_STR = "\$SYS_DEPARTMENT=array(\n".substr( region_array( 0 ), 0, -2 )."\n);";
eval( $DEPARTMENT_STR );
include_once( "inc/cache/Cache.php" );
$td_cache->set( "SYS_DEPARTMENT", $SYS_REGION, 0 );
include_once( "inc/utility_cache.php" );
cache_org_xml( );
}
//动态节点树
function my_region_tree( $DEPT_ID, $DEPT_CHOOSE, $POST_OP, $NO_CHILD_DEPT = 0 )
{
global $connection;
global $SYS_REGION;
if ( is_array( $POST_OP ) )
{
$DEPT_PRIV = $POST_OP['DEPT_PRIV'];
$DEPT_ID_STR = $POST_OP['DEPT_ID_STR'];
}
if ( $DEPT_ID == 0 )
{
$LEVEL = 0;
}
$DEPT_PRIV_ID_STR = my_dept_priv_id( $DEPT_PRIV, $DEPT_ID_STR );
reset( &$SYS_DEPARTMENT );
while ( $DEPT = current( &$SYS_DEPARTMENT ) )
{
$ID = key( &$SYS_DEPARTMENT );
if ( $ID == $DEPT_ID )
{
$LEVEL = $DEPT['DEPT_LEVEL'];
}
if ( !isset( $LEVEL ) || $ID != $DEPT_ID )
{
next( &$SYS_DEPARTMENT );
}
else
{
if ( $NO_CHILD_DEPT && $NO_CHILD_DEPT == $ID )
{
do
{
} while ( $DEPT_NEXT = next( &$SYS_DEPARTMENT ) && !( $DEPT_NEXT['DEPT_LEVEL'] <= $SYS_DEPARTMENT[$NO_CHILD_DEPT]['DEPT_LEVEL'] ) );
prev( &$SYS_DEPARTMENT );
}
if ( $DEPT['DEPT_LEVEL'] <= $LEVEL && $ID != $DEPT_ID )
{
break;
}
$DEPT_NAME = $DEPT['DEPT_NAME'];
$DEPT_NAME = htmlspecialchars( $DEPT_NAME );
if ( !$POST_OP && find_id( $DEPT_PRIV_ID_STR, $ID ) )
{
$OPTION_TEXT .= "<option ";
if ( $ID == $DEPT_CHOOSE )
{
$OPTION_TEXT .= "selected ";
}
$OPTION_TEXT .= "value=".$ID.">".$DEPT['DEPT_LINE'].$DEPT_NAME."</option>\n";
}
next( &$SYS_DEPARTMENT );
}
}
reset( &$SYS_DEPARTMENT );
return $OPTION_TEXT;
}
分享到:
相关推荐
介绍一个php封装Memcache队列缓存类,memcache客户端连接,队列是否可更新,缓存队列生命周期时间,当客户断开连接,允许继续执行,取消脚本执行延时上限,当取出元素时,改变队列首的数值,当添加元素时,改变队列尾的...
Memcache缓存技术 安装 使用 教程 步骤的讲解
Memcache缓存技术,Memcache配置说明及其文件,PHP5.2.6版本内存缓存技术配置,PHP运行环境PHP5.2.6版本的配置,操作系统是windows下
Memcache 常用命令 PHP缓存技术
整理了一个Memcache数据缓存操作类库文件,希望对各位会有帮助,操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以...
Memcache缓存知识
主要讲述memcache分布式缓存的的配置使用
ThinkPHP 3.1.2 官方只能支持一台Memcache缓存,不支持多台分布式Memcache缓存,现在简单改一下官方缓存类库(CacheMemcache.class.php)源代码就可以了。 亲测可用,放心使用,分享万岁!
一个php封装Memcache队列缓存类,memcache客户端连接,队列是否可更新,缓存队列生命周期时间,当客户断开连接,允许继续执行,取消脚本执行延时上限,当取出元素时,改变队列首的数值,当添加元素时,改变队列尾的数值...
主要封装了memcache的缓存机制。使用者可以通过实例对象直接调用工程中的方法进行存取
NULL 博文链接:https://godsend-jin.iteye.com/blog/2261307
Java 高性能缓存(Memcache) ,缓存思路
文件中包含MemCache和Redis的jar包、下载的exe文件以及相关介绍和配置!
memcache数据库缓存.pdf
利用magent代理memcache ,搭建memcache 缓存分布式集群
这是一个php的memcache操作类可以下载看一下
memcache介绍及客户端与服务端开发实例
asp memcache 由于新项目需要和之前老程序打通,发现这个,用来保存session
php缓存Memcache的Queue类库 下面来看看用法,代码如下: MQ::setupMq('127.0.0.1','11211');//连接 MQ::add($key, $value);//添加数据到队列 MQ::add($key, $value);//添加数据到队列 MQ::add($key, $...
memcache数据库缓存,降低数据库压力