设为首页 收藏本站
查看: 873|回复: 0

[经验分享] memcache php 缓存父子节点树 部门组织结构 省市地区下拉列表 常用信息

[复制链接]

尚未签到

发表于 2017-4-13 13:09:26 | 显示全部楼层 |阅读模式
  //首先从数据库中获取父子节点树
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;
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364533-1-1.html 上篇帖子: 【捷哥浅谈PHP】第三弹---使用二分查找法查找数组中的元素位置 下篇帖子: 淘宝内部php操作数据库处理类技术含量极高
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表