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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  & w% e2 u. m4 `7 r! p
  2. define('EmpireCMSAdmin','1');  
    $ F( r( j6 E: T
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    3 b* ~7 H  n3 m
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  % z: d* G3 ?# F; R6 h; T* ]
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    . \9 M' [4 P; w* g$ q* T: g
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  # l; P. K1 b4 f$ e4 |: W
  7. require(ECMS_PATH."e/class/com_functions.php");  & p7 j2 G" c0 I9 }9 w, L9 Z. d9 n
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  $ k; j# z( u2 V! c
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    / L  E, j7 k; D4 X, ]3 L0 ^3 t
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    ! E. X, S+ j* {& H
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  0 S& W/ u' w: P9 y5 ~1 t
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    8 }5 c# f0 K6 G! e1 O
  13. $link=db_connect();  
    8 u! z) m, N! ]
  14. $empire=new mysqlquery();  3 f. L* B1 M8 C& _
  15. $editor=1;  
    ' [* n* _3 R; K3 u& E! O3 d& w: r
  16. //-------- 分页参数 --------  
    % r, P9 V8 F* O$ v; s  A1 C! H
  17. $page=(int)$_GET['page'];  
    8 l2 q5 u6 b/ D* j8 ^8 B) {
  18. $start=0;  / g, ?8 {2 G/ q2 W8 d2 w
  19. $line=30; //每页显示记录数  
    - G9 ?( V+ M" n. r8 Y
  20. $page_line=8; //每页显示分页链接数  ' ]$ B7 @) o, P0 {, ]( q( Y' H/ Q, }9 C
  21. $offset=$page*$line; //总偏移量  6 a/ F7 L. @. m
  22. //-------- 查询SQL --------  
    " ~3 a" H" [. ]
  23. //取得信息总数  
    , J  E$ s9 A9 T, @" ^- c
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  * L. C" ^6 @6 z
  25. $num=$empire->gettotal($totalquery);  ! ]' X& Z) u6 I( t/ U% ], r
  26. //select查询SQL  
    6 t0 `) d" N+ `' g/ _& t
  27. $query="select * from {$dbtbpre}release_money";  
    7 E% c' m% }1 L) A, H
  28. $query.=" order by id desc limit $offset,$line";  
    - p9 L) R6 Q- P0 F3 Y4 S
  29. $sql=$empire->query($query);  
    6 f1 z' _: g( |# ]  i
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    3 m. c3 w* t' `
  31. ?>  6 J. k+ l5 l( n
  32. <html>  
    " c9 I" k0 P3 u4 ]8 l( p4 U" X: i
  33. <head>  
    3 m. `2 _$ h; S* U+ I* F1 ^
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    + C/ y8 M. r% z/ C
  35.     <title>用户消费记录预览</title>  $ E# N; a- ?' Q7 q
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    $ ^! D/ n' Q; x! o9 A5 S3 I' [
  37. </head>
    0 E! `9 z# P* |8 a% k
  38.     <body>  
    3 S# T. p! H9 i; \0 v' O
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  $ O$ w6 Z; U7 Y$ m6 }
  40.             <tbody>  5 i9 _7 `6 g2 U
  41.                 <tr>   ) ^. X& l! ]1 ^- g
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  ; }2 z) }  H! q+ P) h
  43.                 </tr>  
    " j$ T' d/ _) V- i7 b3 ~
  44.             </tbody>  3 u: v$ a, J# w- u5 U
  45.         </table>  . B: U2 j- @2 q/ H/ `* p4 l  a
  46.         <form name="form1" method="get" action="?act=a">  ' |! `) e. p5 o6 n
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    ! Y. E6 R! a. t/ E" _
  48.             <tbody><tr>   # }& Q" F. @7 g) o. ^! v1 n
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    3 p" X8 }) R" U5 U
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  ! k/ J0 b( T2 J; u- l$ I
  51.                 <input type="submit" name="Submit" value="搜索">  
    . A( C/ I! T$ n+ W# g
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    " o8 _, f5 U1 F+ r2 E7 M* D/ v
  53.             </tr>  
    3 h8 {6 a, X( W8 q! D0 N
  54.         </tbody>  # Q, w4 `$ V" T; R2 @; |
  55.     </table>  
    8 t1 M8 _/ D3 X
  56. </form>  $ d, Y" y) E, f# z
  57. <table width="800" class="tableborder" cellpadding="3">  # o+ X5 X# ~5 }$ p, Z8 F' j5 q
  58.     <tbody>  
    ( q5 l& M! u4 Z7 m2 |$ p$ P
  59.       <tr class="header" height="30">   & V2 p, E3 l3 N4 w  A. T2 }
  60.         <td>ID</td>  ( ~, q' K8 Z2 N# j
  61.         <td>用户名/用户ID</td>  
    3 l+ ?  h0 j8 v
  62.         <td>信息</td>  0 b$ k! d+ U' ^( W0 s$ X
  63.         <td>扣款</td>  $ A* t4 o+ L5 }# v* X/ @1 K
  64.         <td>时间</td>  
    ) q% ?. \4 L( m: [
  65.     </tr>  - d" ~9 N8 m9 j4 Q
  66.     <?php  7 F& |' i+ K3 u( N- @- u; t( a
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    % I& ^: e9 F4 |% u% ~
  68.     {  / {+ a/ x! l9 ?& M, C4 B7 ^
  69.         ?>  
    7 G+ `, r) t" B+ G+ E
  70.         <tr height="30" bgcolor="#FFFFFF">  
    # o  O5 L' o  A& ^2 D2 J* q
  71.           <td><?=$row['id']?></td>  
    - d/ ]/ R0 \, y4 ~: l/ W5 v
  72.           <td><?=$row['userid']?></td>  9 g6 J  `& K% H/ z0 H' P! J" Y
  73.           <td><?=$row['infoid']?></td>  
    , f1 j: b7 P9 g% J7 z
  74.           <td><?=$row['money']?></td>    u) R0 M$ u8 c! @' `. d( w
  75.           <td><?=$row['time']?></td>  
    9 n+ ?( R) B" n% P6 C( f% u: z
  76.       </tr>  
    6 g- J/ E6 m. ^% m
  77.       <?php  
    7 r$ k* N5 n5 [$ Q8 b; u+ _) O
  78.   }  
    , z; C' @. X- o2 c$ q7 J* c3 \
  79.   ?>  
    ! q$ E6 B/ H- `; S  G# \/ d2 C
  80.     <tr bgcolor="#FFFFFF">  ! B5 F6 H, n( A9 h
  81.         <td colspan="5"><?=$listpage?></td>  4 X7 ~2 i# P* x
  82.     </tr>  
    ) J4 G' ]/ @9 m' h
  83. </table>3 y. T+ Z# @, j. L- A8 Y% y4 C
  84. </body>  - t) S1 L4 |! n! r) z- ^4 j
  85. </html>  , ^) M7 ?+ X; ?  }9 G9 j) c% V2 y
  86. <?  5 ~! B) n; I2 W; W( q
  87. db_close();  ! H; u& }: P$ j1 P4 w. ?% ~
  88. $empire=null;  
    / B4 \7 q7 A0 j  `: b5 F
  89. ?>  
复制代码
  1. <?php  % @% y* d' o+ Q4 Z9 S
  2. include("./e/class/connect.php");   
    ) B) U0 L4 [6 S! n% V& j" M, D- o
  3.    
    $ \3 I) u% g; T' G
  4. //后端Back-End    1 ~, w( D4 C: Q7 E8 G
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    : B6 ^. K1 w8 Y8 e9 h/ ]% {1 Q
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    4 j8 `3 k  k6 }0 M0 L' R
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    # u3 |" c! k3 _7 C0 o3 q
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    & C6 u. j/ Y. f
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    , `5 z; z: K) n$ x! ]  v7 `/ g
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    ; |  S, D* G/ X" s/ O7 }
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    9 b! K) H  L" {
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    # L- r) G8 N& l* V! g7 g
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    ! ?$ ^* @5 a. X
  14.     : m2 N0 V0 B2 I
  15. //前端Front-End   
    * {5 ~' `, N! o' i! P
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
      ~" U0 @, F- @7 g
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    $ \8 t8 F5 h$ X+ t6 l8 R6 ?; |
  18. $userid   =getcvar('mluserid');    //会员ID    ; G, {' i9 b/ [6 [
  19. $username =getcvar('mlusername');  //会员用户名  
    5 X4 p3 n$ b0 T
  20. echo $username.'<br/>';   
    # [4 K# l6 G7 X- T  n  [2 A
  21. ?>
复制代码

9 ~' @$ a; Y+ B4 T8 S9 ?
. A" s% ?' S/ ~" }  [
  1. <?php  
    , t( v0 o$ ?/ r' T' W  c; `4 S
  2. //会员信息  
    - r' w+ Z8 z. H( Z
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    : a% A% ^1 M9 ?" P
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    ) i2 e1 v7 ]- h$ b
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    1 m- \% V3 c- P
  6. if($tmgetuserid)    //已登录  ( u3 o* u& b' Y# U6 x+ S5 s/ |
  7. {  
    & ~) e6 P7 b, X. c: ]
  8. }else{//未登录  0 T' u: ^- ^' M& g& H" t+ O. v! Z3 `
  9. };  2 N! a7 [9 E1 i) F
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
# k+ x; g3 e/ Q# y# E  f7 n8 }* n
  1. //修改  / f  I) X. f- j  r* `
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  5 w0 X- y& ^& o9 C7 l* O
  3.   
    " O$ v4 k: s- m! {/ v2 n" j* H
  4. //插入  
    & p1 Z+ l1 M3 F- l! S
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  : I, g) j, F, R0 F
  6.   & c4 |  c8 I# b& K% A: W, S
  7. //删除  # p; Y! ^7 X/ {6 @
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    ' Y3 E7 i9 O/ S: V3 N
  9.   ; Z( I: h( N/ [9 h* Y& L
  10. //查询单条数据  * M+ U$ p( S/ \0 \4 L( o
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  * g; r2 B+ M1 J8 M' q( }/ F+ m
  12.   2 c% F' M$ J( ^9 `+ F7 Z
  13. //查询多条数据  
    , d" |/ c/ d9 C
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    . q8 ~2 [, s/ W9 _8 o
  15. while($praise=$empire->fetch($sql)){  
    + L0 U2 }5 c7 t, i2 ^: k+ T
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    8 ~) o; Z# r2 Y; T' A
  17.   if($res){  $ U( C1 W; i) i4 p; b  u
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1    U3 }, P# q" Z. D& J" j
  19.   }  + ^2 X: L9 t2 F3 m" e- N  B
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
# Z! r) ~' X6 f. Q* O2 e' a; R8 u8 }
  1. //筛选包含product的,并且对question_id去重  
    . D# R' t' K# M
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  : b/ o: E) @1 T& E. V3 H
  3.   % n. L; e, J% `. I
  4.     t5 }# A* z6 y- g$ d, C* d3 z
  5. //筛选不包含product的,并且对question_id去重  
    - c2 ?0 E# e& L) I  F
  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″这个参数的记录  # D+ j# z3 L2 V0 y, l
  2. SELECT * from test where FIND_IN_SET('1',area)  : U4 ?" f7 H. l0 d
  3.   , d0 H7 x; q0 J
  4. //查询btype字段中包含”15″这个参数的值  + q4 A' t7 V" J# {9 ^4 ^8 v/ s! h$ t
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


& j/ x1 r; c9 {) ?7 X8 O- _

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

  1. $empire->fetch1("SQL语句")  $ G" d) z" e9 V7 o. p6 u, R
  2.    : Q  s; i4 \2 o7 t: V$ s
  3. 使用范例:  3 i+ _/ r4 V( P. X
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  6 z6 A% v5 C3 M/ _4 M: }
  5. echo"标题:".$r['title'];  ! R# L7 U, S! W" x( L+ K
  6.    
    , R& p- F/ G5 `  S- _( K  [! n& z
  7. 4、统计SQL查询记录数函数:  
    % ~4 [! q( L6 b7 O# X' ]% p! s
  8. $empire->num("SQL语句")  
    / ]% O- R6 }) M$ c& y2 c& z
  9. $empire->num1($sql)  9 w  A* B& c1 ?7 ^0 u; f
  10.    
    2 P% J( z! v" K* u
  11. 说明:  ' w0 t4 q. J1 B% Z9 _0 \: @/ h
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  2 u5 p! l& L! j
  13.    0 u0 G) m; P# b' K
  14. 使用范例:  
    % A) t  I- W6 I% x$ o" P
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    ( l3 @+ F% U/ z+ D
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    6 w0 `" w- U1 \# M( K
  2.    
    * x: `4 U; k. W  b1 L9 H) G
  3. 说明:  / F) N# f$ E. ?. y5 G2 q& u
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    " i4 g$ q% w" U& Z! T3 i
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  ! H% C& b  g/ q  P1 ?- y' t: C
  6.    
    2 w4 _5 Q0 `3 l* G0 m! ~
  7. 使用范例:  ' k0 E+ ], o8 Z0 K
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    4 F4 x9 |- i) A. l) N
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    * J9 h/ e2 z  I7 M1 \: L& v
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    & y/ }' M, j; b! k$ }* R4 g8 k, x
  3. $lastid=$empire->lastid();  
    . w2 h9 v$ v5 D4 Q7 M2 S) ~% A, t' w
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  0 w. M/ V# k5 e
  2.    1 }7 s: F" S) U$ _% x
  3. 说明:  4 d) C5 [6 z( f' U0 w+ V& a% q5 E
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  ' d1 p1 {: t; x9 @6 s; W
  5.    
    % y4 P2 g$ z0 P0 |: I$ Y
  6. 使用范例:  
    9 q1 }$ E5 F! e5 Q
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    ; M4 }; d0 Q5 H; @
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    4 m4 \4 S- R2 F* ^
  2.      b$ B: y: _: q; g
  3. 说明:  # Q3 h$ v: A# l4 a; G
  4. $sql为query执行SQL返回的结果。  ' r( Q0 P: E* h% J9 R
  5.    . i$ R, m9 D( i
  6. 使用范例:  0 m0 B, l- }' N. E7 l
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  % L) l& w( s: P1 i. O
  8. $empire->free($sql);  
复制代码

- e; x" Z( T) r0 M8 b. V8 X% K' R% e/ L. }
, l8 s$ H# }1 ~% i) ^4 [% l. H

* _& `  v. J9 \9 }! ]/ H, x+ e# O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 23:03 , Processed in 0.115739 second(s), 19 queries .

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