您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9440|回复: 0
打印 上一主题 下一主题

[php学习资料] 帝国CMS二次开发引用函数文件

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    & X$ {3 S+ i% A3 }+ C. s4 X
  2. define('EmpireCMSAdmin','1');  
    . E; [3 C4 V% l& v
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  4 `2 L4 n4 m: \& O
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    ; `( g( b4 n# Y9 q/ t. N
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  $ d6 e' ?; E- h7 {/ h
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  ) _! C8 c  }4 s& R& U
  7. require(ECMS_PATH."e/class/com_functions.php");  2 Q' L6 M; v& j/ j! y# j
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    6 d$ \6 B/ ?5 S+ @
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  . ~; U; u; t1 K' S' E
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  ; [! T  [5 t+ i% J$ Z' w7 N  E
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  - d) ~, @7 l0 a- p( {" F# X2 O5 o
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  7 E, \+ |6 ^" V' U) ?
  13. $link=db_connect();  
    ) Z7 J; w' n4 @% ]6 T( j
  14. $empire=new mysqlquery();  
    7 g# Q7 r; q1 M0 M
  15. $editor=1;  
    3 q% a$ \# @9 @7 p0 Q  s  Z. I0 n2 X
  16. //-------- 分页参数 --------  6 z) e; y) [7 N8 x- }
  17. $page=(int)$_GET['page'];  
      E. _) j& j. U
  18. $start=0;  
    # R! [5 n; S/ A5 M* [9 {( L+ S& ~
  19. $line=30; //每页显示记录数  - m% d5 p7 _5 w5 m" M0 o
  20. $page_line=8; //每页显示分页链接数  
    0 a7 O1 N0 h$ F6 E
  21. $offset=$page*$line; //总偏移量  
      _& b, D, C9 H4 g# w
  22. //-------- 查询SQL --------  + ?  r. }. t# B8 @! T
  23. //取得信息总数  & O3 M% m& `3 R5 u+ K: {; ~/ z) `3 t
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  1 w' M! b/ N) t1 A" c
  25. $num=$empire->gettotal($totalquery);  
    " m9 a7 B1 ?8 o! ~
  26. //select查询SQL  & w: ?+ ~# A. }& V/ n! d5 R
  27. $query="select * from {$dbtbpre}release_money";  # _  P+ a8 ]  `3 b
  28. $query.=" order by id desc limit $offset,$line";  4 R9 X  y5 f0 z
  29. $sql=$empire->query($query);  
    2 L& z+ P  W, W, ?$ D
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  3 Q" i- k( {. D: n9 H; Y% S
  31. ?>  
    . J9 }; _0 `- a
  32. <html>  
    2 h4 R* g# i, z5 V
  33. <head>  ; h( ~$ i# {3 {& \% i
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  5 J( E4 K+ A* y( _/ t. y8 o
  35.     <title>用户消费记录预览</title>  % H) z; G& ^# V7 x0 \. }" j& w$ v2 T
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  6 @( N0 A/ H! x" R, m* e
  37. </head>
    8 W- e; O4 s  u2 v% M# D5 |( F0 |' H
  38.     <body>  % N) Y/ k/ h3 r* |& T# E
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    ( W" k4 w. p) `" p: g4 M' O
  40.             <tbody>  / r: a5 `5 z) G, Y. U* m5 ^: R
  41.                 <tr>   , L7 X& z+ x) n/ w+ C4 P
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    * i% i8 p1 n( W6 X: |7 C# t
  43.                 </tr>  
    2 {  _. S/ _/ C- ~& h( Q' e! }( ~
  44.             </tbody>  1 |1 h' l9 j# _
  45.         </table>  ; C  U; f; k8 q6 o* k- U! F
  46.         <form name="form1" method="get" action="?act=a">  
    9 k( U$ e. K/ B0 b1 L* E
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  $ c* D. @  V& {- Y6 k9 S
  48.             <tbody><tr>   0 H* u  g3 A3 Z$ I- Q% h/ m, a+ J
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    * R2 l2 j) ?. G, E4 C( S
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  0 l0 I. C, G5 u: G
  51.                 <input type="submit" name="Submit" value="搜索">  ' j: O8 U, j8 W5 {( Z7 h1 C
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    ) n& }) I# z2 C
  53.             </tr>  
    6 Z) g8 \: W9 f
  54.         </tbody>  
    ( x" j3 d- d3 e/ b
  55.     </table>  0 Q; J+ a  D+ w) C
  56. </form>  
    . f$ a3 c( |2 N& Z& u, F
  57. <table width="800" class="tableborder" cellpadding="3">  
    4 t) B0 _& s- ^1 |6 h: y3 I& J; }; ?
  58.     <tbody>  ( j$ ]0 @6 a; c1 N/ K% S
  59.       <tr class="header" height="30">     A' {* X- O" w( t
  60.         <td>ID</td>  
    8 s% \5 a8 A$ F9 h( t/ V( U; ]. g
  61.         <td>用户名/用户ID</td>  + t. R6 q- U4 z4 Q
  62.         <td>信息</td>  ! s2 _( C5 `' ^; j0 K2 B; d
  63.         <td>扣款</td>  , h, y8 D) m+ h
  64.         <td>时间</td>  
    3 p* t5 }0 b1 T2 e1 @# \
  65.     </tr>  
    1 F- o2 z5 h+ q, H
  66.     <?php  
    ! W, T; N" m5 i9 W5 F  j  o% T9 j* [0 {
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
      f& ^- e' T; b5 Q6 n/ z3 j! s. F6 g
  68.     {  3 ]8 t7 D4 a$ x" X' Z  h
  69.         ?>  ) H  I, r1 `1 }6 T  Y3 }6 {
  70.         <tr height="30" bgcolor="#FFFFFF">  ' C# _4 u/ n8 F) C/ m
  71.           <td><?=$row['id']?></td>  
    " C' G1 I0 ~# g% y  @
  72.           <td><?=$row['userid']?></td>  
    0 @$ {, d1 P5 r5 u
  73.           <td><?=$row['infoid']?></td>  
    ) F% Q- E: \& i, u: C' }+ z
  74.           <td><?=$row['money']?></td>  
    ; `! Q  y1 s$ H& A
  75.           <td><?=$row['time']?></td>  $ M) b$ j+ A$ v2 G" G5 e) ~& l
  76.       </tr>  
    8 }1 O$ V& g' T8 U. ]
  77.       <?php  1 x0 Q$ K/ \, g8 j
  78.   }  , z7 y) A' U% [' g0 G" ?8 @
  79.   ?>  ! p1 |) x  g4 _+ Y  b
  80.     <tr bgcolor="#FFFFFF">  ( X6 o& B8 ?9 E: A: p1 ]
  81.         <td colspan="5"><?=$listpage?></td>  / h0 A6 H+ ?- [& S% }* p
  82.     </tr>  
    . ^  B) @; l5 ~6 K* _5 R8 ?1 F
  83. </table>
    ; o, e/ o# i5 l
  84. </body>  2 A2 d, `1 |% o' a. a! _* T
  85. </html>  
    ' ?; \( T& N  C" p# f
  86. <?  
    , [$ {! @8 A+ F% a$ P9 V& d' S! g
  87. db_close();  - q( Y: C- ?4 S4 r- W: G* m  i
  88. $empire=null;  7 ^# W6 L5 Q9 w# k4 C: Z) F) r5 ~
  89. ?>  
复制代码
  1. <?php  
    % o0 _4 x( ]; s6 z# i! V- @+ q
  2. include("./e/class/connect.php");    , h1 H  f( ~0 g+ t4 ]1 d
  3.    
    ; p6 ~6 i% {( P$ S1 U. W
  4. //后端Back-End    8 s7 k! l3 ~! G+ M
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    * M$ v! ]4 j2 m2 b
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    & h) K8 c1 a; u4 m  i" V+ X, C" d( Y
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    / E9 }( K6 p8 q' k5 X2 ~2 D& C# |
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    6 w3 v- [" E2 n2 z
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    $ ~  Q1 a5 u: c4 j
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    & s5 _/ V# F+ f/ s
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    $ B3 S3 T3 k/ c, ?$ w- k6 W
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    . d! }; M0 r2 J- N$ ?; b' T
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    1 y6 i5 h! V1 v1 ?3 D7 [' G2 w9 W
  14.     $ X( }2 C' p( H
  15. //前端Front-End   
    . B' r4 ]& d1 O2 N% D6 m- u' B) F
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    1 Y8 y; x. m0 @2 E$ O5 ]$ N
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    ; y* L6 ?- z, R+ q$ ?1 ~
  18. $userid   =getcvar('mluserid');    //会员ID   
      [* Q. y: B6 _' [9 P! S
  19. $username =getcvar('mlusername');  //会员用户名  7 B0 \& p. i  y8 [1 }
  20. echo $username.'<br/>';    * e& C; B/ ?6 ?! F# T
  21. ?>
复制代码

- B& M4 q0 o" {; N" w  O/ o0 S1 w# w6 H8 q. O" E& O" m
  1. <?php  - q8 m1 W( V" k! H
  2. //会员信息  6 A, }- i/ S0 }! O& ?
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  2 z7 m" [; V0 t, j0 ~, ^
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    8 m2 j: e! Y7 |! F/ p* f
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  * Z# \) V" l! c3 i
  6. if($tmgetuserid)    //已登录  
    : I: |/ X) ^" O. I" P3 `# |
  7. {  8 n. ?* n# {/ g( P0 H% ^) O
  8. }else{//未登录  
    + P! I. @" F' l7 K' c* {
  9. };  
    6 r6 r& i) r3 _$ G2 Y4 R
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:3 n4 f) b4 X. w; I4 ^6 K
  1. //修改  0 P7 i% |3 G$ s- x9 {9 F. v
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  & Q) c* J3 u0 _5 ~/ g
  3.   
    4 w) w: V( _! O( p8 V- M
  4. //插入  
    - H3 C$ C9 [% C1 E' O2 n* n: R
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  8 r; Z/ F% L) `; K; N
  6.   
    ; d  ^. t4 J' i0 \! r; a
  7. //删除  1 Z! a  V5 q9 w
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    + l, M4 B2 E5 Y4 a& p) `
  9.   4 j( D  p8 [' _9 C
  10. //查询单条数据  
    / K% P; }5 _5 o* J6 H  Y- \
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    3 u, J  E# P# c$ P$ k
  12.   - E0 J5 J2 q$ y3 i2 l- Q* Q6 s
  13. //查询多条数据  $ k0 t" y- t. c! s0 H
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  * A7 U1 z+ t9 |/ d! u$ m
  15. while($praise=$empire->fetch($sql)){  
    % [: u% w6 Y1 j. N- e1 U- U
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  6 o5 y6 s) L9 i1 t0 \4 a
  17.   if($res){  6 y- }! X, S& L4 K* x; o3 f
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1    j7 C0 D& ^7 u2 I' U+ }' o
  19.   }  
    9 B1 n2 m/ w% b! `2 m) P  }
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数: A3 h* c; A: ^# N, S
  1. //筛选包含product的,并且对question_id去重  
    # Y8 b  c! O8 M6 v% m
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  ) F* o& i8 }; F# ~; G
  3.   
    % i7 x$ F; x: c! o* y/ V
  4.   ' ?3 I( e# |& O1 D
  5. //筛选不包含product的,并且对question_id去重  & `5 ~: P* |4 r: s3 Q
  6. SELECT * FROM `mcc_service_question_options` GROUP BY question_id HAVING !FIND_IN_SET('product', GROUP_CONCAT(TYPE))
复制代码

str 要查询的字符串

strlist 字段名 参数以”,”分隔 如 (1,2,6,8)

查询字段(strlist)中包含(str)的结果,返回结果为null或记录

DEMO:

  1. //查询area中包含”1″这个参数的记录  " u5 k- V9 D9 p3 U% F7 ?0 r
  2. SELECT * from test where FIND_IN_SET('1',area)  
    1 K: i6 ]* \: I& l
  3.   ' l3 F- ]" r! w& o8 |
  4. //查询btype字段中包含”15″这个参数的值  
    , i% y6 |) i: _
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。


. G% K1 n/ s! T* ^9 i- v" L

读取单条数据库记录函数:(不循环)

  1. $empire->fetch1("SQL语句")  : Q% v8 |& Q9 f) ^. ]/ }/ C
  2.    
    - ^2 }, ]) r: S( U& h
  3. 使用范例:  
    . b3 M: i/ s8 X) |" @# d
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");    {* }( ^4 I# |3 T) _/ p
  5. echo"标题:".$r['title'];  
    ; s/ A' p& h9 W+ C- q
  6.    
    $ F; |: u9 b3 [- U; T+ b0 W
  7. 4、统计SQL查询记录数函数:  
    : p- H4 Z" j# ^+ @' ^
  8. $empire->num("SQL语句")  
    & b! {5 L9 A$ X+ ^
  9. $empire->num1($sql)  " F" R' Y- P6 x
  10.    ! S* R& w- ^" S$ D, z
  11. 说明:  , A2 c8 ]8 J  z, f
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    " D: K) c( d, E0 S( S! r6 r+ F
  13.    
    8 Q% e# |# ^' t# p
  14. 使用范例:  
    ! b7 g' h0 @3 ?. Q3 t
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
      ~) ?- z' J5 N; q3 g
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

统计SQL查询记录数函数2:(相对于num更高效的函数)

  1. $empire->gettotal("统计SQL语句");  ! E( B* \/ e0 N7 K3 E
  2.    
    2 h; @. _5 J# B' ]- h# m
  3. 说明:  3 I. A' U% e/ x/ M, o' ~
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  3 |0 J, ~! s$ n* g4 l, y- U
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  $ m: s% r: o/ o4 D
  6.    / i: K: q' m$ L
  7. 使用范例:  
    1 g# n7 u% y+ k9 d6 }; W
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    ) z, W8 D" f; i$ ?# o4 D
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

取得刚插入表的自增ID值函数

  1. 使用范例:  8 j( |' C, e& o+ B) Y- }
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    / o  \+ E/ \6 E* b+ K" p( v' W
  3. $lastid=$empire->lastid();  
      y1 y1 E5 K4 Z' `- E
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  ; A' ~* m- e/ h/ f
  2.    & D/ }# v9 k2 C
  3. 说明:  ; i! t. t/ e3 a8 x* }5 _3 F1 `7 @
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    - o+ i/ }5 D9 k! x* _6 X8 b
  5.    1 b/ [/ r( P7 V$ g  @& ?
  6. 使用范例:  
    1 A8 \% R& ?* h3 g& `& C1 r' U
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    # a# C" c! h; L+ s8 b' T* C$ p
  8. $empire->seek($sql,2);
复制代码

释放SQL查询结果函数:(一般不需要使用)

  1. $empire->free($sql)  7 W7 m+ W  H4 n: G
  2.    
    . d: f. T. G+ M) o6 l
  3. 说明:  
    & B) [) B9 K- b- u5 ~- i* ]7 i) {
  4. $sql为query执行SQL返回的结果。  
    * ^% O8 e" g2 L! R1 Y  d- r
  5.    . n/ l8 j/ s, V* Y
  6. 使用范例:  
    : p4 ]. Y$ ?% `' e
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    * l8 A% N* l$ _/ l" k
  8. $empire->free($sql);  
复制代码
. J: @1 \: K( L0 V$ h
# ?; d5 j0 O# i
2 P% ]' p: K& E5 i8 _( g

+ z2 `" L3 |$ x7 C9 o8 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-10-18 22:30 , Processed in 0.138237 second(s), 20 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!