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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    % M" {8 t9 A3 ~$ \  m# D& }
  2. define('EmpireCMSAdmin','1');  / m& H: M) {, Q' n5 v
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  8 z4 R* `+ i+ C, d  x
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    / Z) U8 H6 G9 D
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  9 b0 ^3 b5 H1 r0 p9 o, _
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    - l' N; t6 _) Z2 S/ F0 F+ z/ ?/ o; U
  7. require(ECMS_PATH."e/class/com_functions.php");  : K8 T1 M, i: F
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    * h+ n  M& e! O& N3 }$ s
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    . B0 O, C3 S6 l3 f6 ]5 b
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    2 P+ R: }) {9 R0 Z" C: v7 j2 y
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    * P) d6 d0 L+ F* I
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    . M  N( e6 ~2 ~! ^3 Y
  13. $link=db_connect();  $ `, ?/ {. _- b* D
  14. $empire=new mysqlquery();  
    1 x. g  r7 s. B0 I3 e
  15. $editor=1;  
    0 r1 M" H/ S& R; W4 q2 N( K
  16. //-------- 分页参数 --------  ! r" L! y; ~5 U) H
  17. $page=(int)$_GET['page'];  $ ?: g  y- V% p. s9 L) W7 U
  18. $start=0;  ( R  O3 I4 _' b! D- m+ A
  19. $line=30; //每页显示记录数  
    ' {! J' b& K* m( B: b
  20. $page_line=8; //每页显示分页链接数  * d' t6 [% D8 H* Y7 e# b) E
  21. $offset=$page*$line; //总偏移量  4 d+ Q1 @3 N, A9 B: d9 a" N2 i
  22. //-------- 查询SQL --------  ' n( m! }: Z: Q; D: t
  23. //取得信息总数  
    ; f( k9 \7 |* p/ {; E
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    ( a4 w0 ]: P  ~+ c. g! v# C
  25. $num=$empire->gettotal($totalquery);  0 J; {: }2 r2 G
  26. //select查询SQL  ( o. |& ]) L; s% }
  27. $query="select * from {$dbtbpre}release_money";  
    % C$ x' y) K# v5 V0 X
  28. $query.=" order by id desc limit $offset,$line";  * U: T$ C1 Z0 K
  29. $sql=$empire->query($query);  + V0 E* l7 ?. a  o6 f
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  ( A; v* T" j* t! B7 n  E6 v
  31. ?>  
    4 K; Q' w6 d" {; ]
  32. <html>  8 N8 W6 ]: G& P/ S# d5 ?4 Z3 D6 X
  33. <head>  ; N6 U- y2 P5 t5 M; U+ @) U
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    4 F: y( \; _9 Y) V" R
  35.     <title>用户消费记录预览</title>  8 d' R+ u+ m% V) G  ~( ^
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    - w' @5 e! D  J% k. {4 C7 o. H
  37. </head>
    % b* p1 B- f5 c! m
  38.     <body>  
    . P1 I* Q: F, e. X6 S, Z6 [
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    . X7 i2 y" K( {' S: _
  40.             <tbody>  
    1 o- d% V( c2 Q) k
  41.                 <tr>   7 m7 |. c9 {+ i
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  , s7 j( c& E3 n
  43.                 </tr>  
    ! n" |! Z; ]- J. h  D# J
  44.             </tbody>  
    $ A' G% k  i$ L
  45.         </table>  " g- |' _* I7 ^; C7 l
  46.         <form name="form1" method="get" action="?act=a">  . F( A) T9 v6 t( J( u- E
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  2 C9 B9 ]- [' s  X  Z
  48.             <tbody><tr>   ( ^& ~0 n. n) I5 [, P4 o! ~
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    4 z" V% t# s0 n
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    + D: s& M+ E- y0 _" f" [- T
  51.                 <input type="submit" name="Submit" value="搜索">    t$ c4 T- ~7 O1 ?
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    6 J! A1 p1 j  O! |  V/ Y7 G
  53.             </tr>  + |! D( y" c: p( {( h
  54.         </tbody>  ; F2 M2 d- m$ m8 V
  55.     </table>  , i1 G) U# H) j" ?
  56. </form>  - X- r1 {4 a' W' t7 i! t5 T
  57. <table width="800" class="tableborder" cellpadding="3">  & d, B' |- `  H6 S4 s# B% [: i
  58.     <tbody>  
    7 U4 @4 s, S/ x& k: S
  59.       <tr class="header" height="30">   4 I8 ]: m, i. L/ [0 B( z8 Y: f  b& a
  60.         <td>ID</td>  
    ( p0 X8 {$ X6 I2 F
  61.         <td>用户名/用户ID</td>  
    0 A) V* T& o# v3 n# F, V
  62.         <td>信息</td>  8 y$ C; _  `+ t  w) w
  63.         <td>扣款</td>  
    # k" h8 t" f6 a
  64.         <td>时间</td>  
    1 r6 |+ B+ o4 b
  65.     </tr>  2 f1 r5 l, k8 D1 \6 t9 R3 W
  66.     <?php  
    ) B2 L- y) t: y, r, Y- ]. r7 i
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  0 I3 S; u% x: M$ y. }" U
  68.     {  
    . r$ e2 U5 x8 y  n6 h" U, d( ?: M7 Z
  69.         ?>  , O3 W: p' Z& m% v$ }- G
  70.         <tr height="30" bgcolor="#FFFFFF">  5 S, I6 O# i0 y# h( k6 D: l
  71.           <td><?=$row['id']?></td>  * j7 T( `% ~, K
  72.           <td><?=$row['userid']?></td>  0 `3 n  y* M2 {  F( Q
  73.           <td><?=$row['infoid']?></td>  
    + F( C! I. V, @) {1 p
  74.           <td><?=$row['money']?></td>  ) H& _8 M. j' o. }( }
  75.           <td><?=$row['time']?></td>  
    ' B+ l3 Z# v# J' n5 x9 V7 j! [
  76.       </tr>  - X+ z- U/ t/ R" y, g7 F
  77.       <?php  $ T) W$ k' b) H* t, ?! u
  78.   }  6 b- [) @- i9 K) B: _9 Q$ G9 Q+ d
  79.   ?>  4 M9 ^! T9 x/ F
  80.     <tr bgcolor="#FFFFFF">  ( N$ G3 b9 t7 I! w" g' ^
  81.         <td colspan="5"><?=$listpage?></td>  ' C2 u$ U( J2 e
  82.     </tr>  3 ?$ q2 a+ e4 [8 M! V
  83. </table>
    ; ?1 q* k& i& W1 h- s% ]. U- S& `: S
  84. </body>  & P+ r/ V6 V; v. R/ t
  85. </html>  3 g" q( x  y4 s; ?' K. a0 r
  86. <?  5 N3 p) ]. b  k8 j1 @7 F' N
  87. db_close();  
    % t7 I% b) ~; E' m8 W* o% e2 h
  88. $empire=null;  
    / d& L- Z* v7 I, s: q8 V
  89. ?>  
复制代码
  1. <?php  9 z- w0 [) ]6 ?' a( z
  2. include("./e/class/connect.php");    8 t" x1 }0 d/ o9 H6 L+ a% Y
  3.    
    0 I: E$ Y. J& {4 f( N* i6 ^3 \
  4. //后端Back-End    & e4 s" @! e, _0 h; n  ^3 ]
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    1 p' u% T# f3 b3 t' F! Z/ p& q
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    . p, Z8 Y4 H0 q, j7 N5 X1 X
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
      d; M1 g4 l: W( E+ \6 r
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    ; |/ O2 I4 b2 [. T/ S% k
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    8 _& F6 z  L/ E" C
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    8 ], ^: Y# |" c& }9 u; O
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    2 m4 E6 ^- T! l+ [5 C) x: L7 `2 y  j
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    7 C% {/ C- S3 Y5 U; U4 k0 S+ ~& l6 p
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    9 K+ d$ G6 s4 I
  14.    
    : f+ J- _' j4 c( }) ^
  15. //前端Front-End   
    4 F  t/ l5 E2 f( A5 u, J3 d: S
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    - r$ ^  t: H* ~0 x9 o* ?
  17. $rnd      =getcvar('mlrnd');       //认证码加密    ! Y/ ]$ I# k, a9 [
  18. $userid   =getcvar('mluserid');    //会员ID    ; u) [( @  p$ {
  19. $username =getcvar('mlusername');  //会员用户名  
      _& I7 A. `$ d
  20. echo $username.'<br/>';    : q/ ]$ u8 _) T7 a0 h; P
  21. ?>
复制代码

2 L( L# p' _/ B  L7 r
; o, ?1 O1 |! B; c- n7 O/ ?0 a
  1. <?php  : u3 E) h8 r; h: b: C: U
  2. //会员信息  8 g1 J! b) O( e" z4 w
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    , k% r' T$ @4 w9 i' N4 f
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    3 \! i" i1 q) E  r. U9 g
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    , X& }3 c( o0 ~5 Q2 |8 J
  6. if($tmgetuserid)    //已登录  4 o, B, I7 Q3 }
  7. {  % l: u! @' d) \. c/ X6 o2 h0 H
  8. }else{//未登录  
    ) G& h/ Y( T# }7 b
  9. };  ( U, ?# R/ D* y
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:# S) r0 t# R1 ?7 D0 ]
  1. //修改  : Z* c& a, o3 n) z# f# O
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    - A( k$ L/ [2 ^7 Y& f/ O. H
  3.   
    ' I) D3 ?6 C0 i( ~* @9 |' k) W6 k
  4. //插入  + T, Y6 T, o7 }# _2 t& O
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    # t$ f! o5 }( f! Z
  6.   
    : T2 R0 p' y# |& m" N: b. L% X# R
  7. //删除  
    + ~3 @- x; j* `/ U8 [
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    & T' I. I3 \' M
  9.   * K- [9 B; ?/ U( H8 R
  10. //查询单条数据  
    0 a8 j; B/ k+ U( |+ F* E. P+ ^
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ( v9 F. A9 v& X* q( R2 d
  12.   
    : q# e* }4 S1 K; k+ G& M6 s7 H
  13. //查询多条数据    E# x; `# n) N9 D* P
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  7 l( q- Y  U3 _
  15. while($praise=$empire->fetch($sql)){  
    ' [/ H' H2 @* J' F0 ]. p& O: \
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    ; t! n, d8 O: e) R8 y9 R; d* r
  17.   if($res){  4 ~+ r% T+ w1 c
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ( M; @0 F/ B- s2 }0 K8 t7 l
  19.   }  
    4 m- y: a2 F7 [% G; w! q! }1 g
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数' e) _( w' z. P
  1. //筛选包含product的,并且对question_id去重  
    8 e4 `9 G' ?- Q( H1 t4 y/ w
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    ) k& O& i5 f2 L. B) H
  3.   
    . v/ T8 e) L, ]
  4.   & P6 [3 c7 x* c& {) b: S3 V8 e
  5. //筛选不包含product的,并且对question_id去重  ) a$ r! n: m3 N* O
  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″这个参数的记录  9 L) _! C8 r2 j2 x
  2. SELECT * from test where FIND_IN_SET('1',area)  
    9 ]$ `# K7 J/ N( A, h" c/ J
  3.   . [. M, V* m; s$ O2 d
  4. //查询btype字段中包含”15″这个参数的值  ! d0 `4 [( j) ]
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

, X# b, }# M5 {$ K5 D

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

  1. $empire->fetch1("SQL语句")  1 W6 t$ ~3 [2 Z# ]2 _- `
  2.    * T2 I" ]+ Y+ h+ k3 }! H. i& @
  3. 使用范例:  ) S( ^$ G& Q+ x, K; z( _  G9 j
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    & K7 H+ R0 \% Y) g4 g& B
  5. echo"标题:".$r['title'];  
    9 ^/ o, G% a; E- W* ]
  6.    - H+ M" }0 R( ~+ _: o) g+ U  F
  7. 4、统计SQL查询记录数函数:  # r( ~4 X, {+ A7 j- Q7 Q
  8. $empire->num("SQL语句")  . {8 A8 f2 ^$ Q' `9 l
  9. $empire->num1($sql)  ) o/ _/ H  K- O
  10.    4 Z! u, l$ Y# h* R9 R2 V: B
  11. 说明:  
    ; J: Q* d/ K' a/ c1 m# z
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  , Q/ \' J  E- K; C9 D
  13.    % A3 Y7 K: ]4 f8 N; Y
  14. 使用范例:  
    # P/ s8 a  O' L2 p
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  / o3 c7 b, T, \0 a  M+ a( t" A
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    8 H+ E3 j2 N, a
  2.    
    & ~! |  q: ^0 h
  3. 说明:  7 N; T, Q* l6 ~0 s2 J
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    + v; e) N, w" D$ J  `& w9 z. {
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  + M' A6 h- {# U( {: B! R
  6.    
    7 I# W: o3 |' c$ o  j' Z3 m+ U) ]
  7. 使用范例:  / G* \& Q) P- _! U! M0 Y
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    , j5 v' e0 h+ \, u. P( L. @
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    ; ?1 L2 U4 k" K* A( ~7 c
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    * D; `# I' I& d/ v+ D" S. r. K
  3. $lastid=$empire->lastid();  
    ' ^, l. L+ `& N- f( [
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  & {) I; l* E8 Z
  2.    + b  O/ \. N/ C+ v$ c
  3. 说明:    ^2 F* u' Z* ~" p+ D5 s
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    % R- F: _5 m& v( F8 ~
  5.    
    4 k# L9 {5 T2 ]. a! g
  6. 使用范例:  : h+ O+ d: M1 P4 O6 [7 H0 j
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    * K- _6 l. M; Y! f6 F0 V) r( L7 w
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    3 d; F2 u# F! q- B$ @: J
  2.    
    6 `; D3 u+ A7 T7 b! d( {, }+ K
  3. 说明:  % W1 |1 S, R3 \. N. L* _3 ?0 g- t
  4. $sql为query执行SQL返回的结果。  0 p+ |  ^4 M' o, S
  5.    
    3 v4 P( Y: i" ]% \5 j
  6. 使用范例:  . L6 l2 K8 _' c6 X! x) M. C
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  + Y! ~6 c  l& `) t7 c" D8 A
  8. $empire->free($sql);  
复制代码
5 g4 [! {& C& ~% ~, H

  B% _* q" J  u1 [
& }6 ?2 Y- r8 C  B
1 |) k- E* y8 ~& I& U6 ^. F5 a+ G: Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 14:42 , Processed in 0.052024 second(s), 19 queries .

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