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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  
    ' q4 D& T4 O: u
  2. define('EmpireCMSAdmin','1');  + L8 Y8 J+ W+ c( ^
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    9 f, `% q* [7 R  P- }
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    * z+ B4 y2 E) n( G8 Z1 U
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    " F4 @/ a$ U1 g1 U! H- [1 I) k  n1 H
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  & c- f- L% }: V2 |
  7. require(ECMS_PATH."e/class/com_functions.php");  + z" l4 L7 a* q. _0 }% [/ H1 K& b) J
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    7 f. q. A/ V; e/ A7 W6 n! x
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  6 H& f9 Z* H2 ]2 \! z# X5 y3 B5 p
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    - Z! p' [# D: m; Y  W
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    : a1 Y' U* f3 u0 B3 Z8 P
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    + K& G* v' D" {# g
  13. $link=db_connect();  
    8 Q- L; t; l/ ?
  14. $empire=new mysqlquery();  , y$ F& ~- A! f" w1 }$ \3 \
  15. $editor=1;  
    % m% K: O! }( w$ Q6 K8 w1 H/ k
  16. //-------- 分页参数 --------  
    , T1 W" |, W1 F9 U+ l" x
  17. $page=(int)$_GET['page'];  
    3 U7 K2 s% I6 D* ~* e$ G) x* W. J$ E
  18. $start=0;  
    8 S  d  n% V2 i: g4 i; V
  19. $line=30; //每页显示记录数  1 U' P$ ^& G* J6 Z( p" ?% f/ H8 D
  20. $page_line=8; //每页显示分页链接数  / }) Y- J3 Z  L9 o* W* B4 J
  21. $offset=$page*$line; //总偏移量  1 e3 X0 E  g' K( E6 I0 R( e
  22. //-------- 查询SQL --------  
    , M; M8 V: `. f
  23. //取得信息总数  
    8 c! h$ U( C; p& @* K
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    + _& l3 I* ^' u$ c( R
  25. $num=$empire->gettotal($totalquery);  3 n  G8 |- n7 Q7 ~2 [
  26. //select查询SQL  
    / o6 V# i& w2 E/ R4 ^: b
  27. $query="select * from {$dbtbpre}release_money";  & l  k( h+ o8 g1 I9 ~* T: b* F
  28. $query.=" order by id desc limit $offset,$line";  
    # g; _  d  `1 q. ]% W
  29. $sql=$empire->query($query);  
    ; a$ w# j) L+ a
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    5 A5 I3 y: O' F! g
  31. ?>  
    * Q8 f1 T, V" ^9 M- ^7 L" {
  32. <html>  " X5 X# M9 \, T: S- Z9 i. z( I  y
  33. <head>  
    ( y$ u% G8 h' ~: P1 ^
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    - G+ S+ e: Q- d& \
  35.     <title>用户消费记录预览</title>  7 d- t6 n% m, T# b( u- ~- `/ q
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  2 z1 Y+ E$ I& I9 ?" _2 q' p
  37. </head>0 Y0 G# B2 L3 Y, _
  38.     <body>  
    9 Y+ C+ C0 n1 y4 ?) g
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    0 f+ F) R  ?6 e
  40.             <tbody>  ! S* ~9 ~5 ^$ w8 `
  41.                 <tr>   & y3 d3 M4 y3 l4 F+ P# d
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  : j& }/ W: ^! [3 K  X* h7 s
  43.                 </tr>  ! x/ v2 j, G' T7 y6 X" z
  44.             </tbody>  % `$ w9 E7 T- r6 j+ b/ D3 c6 I1 q
  45.         </table>  ; Y; h: c/ k: N. u2 S: t: e, B. a
  46.         <form name="form1" method="get" action="?act=a">  
    3 A! |( b8 ?! ?
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    ( ?0 k( g+ Q  `6 u4 V
  48.             <tbody><tr>   5 Z* k* V2 A8 ]* [
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   & X$ h( I. U8 H+ k8 H
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  : w; Q% e, Q4 B) c5 P
  51.                 <input type="submit" name="Submit" value="搜索">  ; A4 K3 v, j+ m7 K
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    & i  \6 F" W% K$ z* [
  53.             </tr>  
    ; B2 _, k8 c, J# B
  54.         </tbody>  
    7 x$ S! j/ I) o5 N
  55.     </table>  5 V1 c! N$ ~2 j. x! A) N$ Y5 ~
  56. </form>  
    * w3 B. L# P3 i, u
  57. <table width="800" class="tableborder" cellpadding="3">  6 ~: x; b# Q) l# b0 y0 I8 m
  58.     <tbody>  
    ) \; G3 k+ j5 F: Y6 b' [# ]
  59.       <tr class="header" height="30">   . k6 ?; i, H+ E% h+ U  l* s. j6 K
  60.         <td>ID</td>  
    . @' u! K0 h" m9 |: \) ?5 M) T
  61.         <td>用户名/用户ID</td>  " `+ Q9 ^( S; ?* g: T
  62.         <td>信息</td>  
    , P  z  U! T4 ]
  63.         <td>扣款</td>  9 Y# o- v4 k( j3 G& E
  64.         <td>时间</td>  
    2 z; q+ ?" ]% T
  65.     </tr>  3 ~% N9 Y) W4 _' n% J/ t0 a
  66.     <?php  # I' ?1 a/ w4 W1 r2 O
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  % x* O6 p2 B3 g- z" H
  68.     {  $ U: L! m: k$ d9 [" Q* y" `
  69.         ?>  
    % ?8 u6 e9 D+ }5 g# B/ L
  70.         <tr height="30" bgcolor="#FFFFFF">  
    , q0 \$ j  S7 U8 T* m7 D
  71.           <td><?=$row['id']?></td>  7 B( Q; T# c5 P, q! m
  72.           <td><?=$row['userid']?></td>  * u% l2 }0 p! }* M+ T
  73.           <td><?=$row['infoid']?></td>  
    5 p; ]6 ^" X: a6 K. p5 _# j
  74.           <td><?=$row['money']?></td>  
    & K/ j: j! c2 U8 P2 n! h( _
  75.           <td><?=$row['time']?></td>  
    6 g6 L8 ]$ T+ |$ F& n7 b( ]) A& T
  76.       </tr>  
    $ l0 l6 Y* f, B; N" x5 u
  77.       <?php  ( e4 ~: x* e7 o6 t% V
  78.   }  ( n5 U/ t2 Z: ?
  79.   ?>  0 k' j  S4 d- S5 n
  80.     <tr bgcolor="#FFFFFF">  6 _7 B( t5 Y: l% H) r  @4 X
  81.         <td colspan="5"><?=$listpage?></td>  
    , y* ]8 V1 D5 E$ `& p, r
  82.     </tr>  : l+ A5 z% B6 B, j
  83. </table>
    0 {0 ^+ `- a$ Q6 i0 [& q1 F
  84. </body>  
    $ z9 T3 V8 d. G9 L+ J# }+ t
  85. </html>  - D5 a% A5 ~. b2 j' @; o, y
  86. <?  
    2 i& q  X$ G0 A4 f0 A
  87. db_close();  
    : _5 M9 T: ~7 c- D- |0 C2 `0 ^
  88. $empire=null;  : i3 x) @: x; f5 `5 P
  89. ?>  
复制代码
  1. <?php  , {8 F0 i/ O! f4 g" T+ x! H
  2. include("./e/class/connect.php");    + E6 X/ [. o3 n% a8 ^
  3.     * V' [2 l9 b/ k. j- S0 N4 ]
  4. //后端Back-End   
    9 f' t: q6 o- }8 S/ O! G1 s- E
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    " \% U5 u3 k( Z
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    $ @/ \$ Z  P+ E: D1 Z8 v
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    5 a6 U0 ~; `1 P0 n; U
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    8 e2 g$ c1 |& a  z) c3 k; G, Z
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    + e2 }9 ?$ r; ~+ `: {( B
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    ; n. e- w$ O# u. O. {1 F
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    1 ?' P4 k8 l7 Z2 o4 n5 K
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    - v0 v4 C! d& G' P+ _, h5 f' v+ P
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    7 m! [5 Y" W* }' z6 {
  14.    
    & K! {( @; B4 Y9 z, `! e
  15. //前端Front-End    # W& o! D' U* R- c
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    ; {- u7 S+ C0 H  }9 p
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    0 i6 r- L; T* b5 Y# R, x
  18. $userid   =getcvar('mluserid');    //会员ID    " u# j; f8 @9 K
  19. $username =getcvar('mlusername');  //会员用户名  2 [( c1 I1 H' G* s" |6 G9 h
  20. echo $username.'<br/>';    / J3 P) c# O9 N- ]) m) w5 o
  21. ?>
复制代码

) ?9 e: n2 Z% ?0 Z# T& @
( Y5 l' l2 }& E4 Q( G7 Q% i
  1. <?php  
    0 U& n& W. W. q* b: ^2 p% J; F
  2. //会员信息  + \! t8 F( i; E4 D4 _& D4 p/ l& C3 f
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    - o$ l3 c9 `- Z" K& H
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  - c: S# g2 |3 M& P" X, X6 m. Y7 z
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    7 Z0 N7 L' \- I2 y) x7 F" k" f& S
  6. if($tmgetuserid)    //已登录  
    $ `& e! ]8 \( t# |1 u$ t0 k3 C# G9 V
  7. {  5 _! h3 `' i2 K( {
  8. }else{//未登录  
    ; X$ m3 Z2 |8 e& @+ p% O
  9. };  
    5 ]  T+ t5 _6 ]" }
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:* U' U. u  }: F( F# ?1 X! U, |
  1. //修改  
    * V8 E& \* H6 S4 `1 @, C
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  * ]5 L9 l0 Q( s' `
  3.   
    0 v9 N" g& X5 R1 U; }
  4. //插入  
    4 {4 Q/ v6 |) V) h* a- N8 X1 R
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    2 a3 @" _# Y* Z, m" S0 Y. j
  6.   ! X& f3 m/ [2 J- }2 e. z% d
  7. //删除  
    ! }2 k: ]1 o; U9 K# g$ ^% K% p
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    ( U( A  @0 B( @* i! {. F
  9.   
      A2 x2 [4 @. |0 T. G) t, x
  10. //查询单条数据  
    1 K3 _$ s) A0 Y1 M" b) {4 ~
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    : m9 w1 N7 M2 g: c% C
  12.   + f; g& i. T4 I, f4 \0 ~9 o7 s
  13. //查询多条数据  
      b' R/ `, t% Z0 D5 j
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    + N6 O/ @  G( y9 ~) V3 y8 n+ o
  15. while($praise=$empire->fetch($sql)){  ! q# i$ h; `1 K3 R3 Q" n4 l
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  / K# s- D5 j4 \  W7 e! Z
  17.   if($res){  % a4 r7 B6 {3 c/ C5 e
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  / w. ?1 f! P4 I1 s5 }; T! f# J
  19.   }  
    ' Y" j9 H& U) ?
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
! T3 ~% L& N' r1 f1 R7 r
  1. //筛选包含product的,并且对question_id去重  
    ( ]0 P7 Q) s" ^) P
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    8 D8 m& g" f2 B- n; p; ]6 e- d
  3.   
    # X( E8 |# d1 n, p
  4.   ; }# @0 `8 ?3 c- {. C7 Z. Q6 L
  5. //筛选不包含product的,并且对question_id去重  3 s+ c& o/ }3 L8 g6 T
  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″这个参数的记录  1 w1 k" ?. ]( H/ d
  2. SELECT * from test where FIND_IN_SET('1',area)  7 p  N& A2 @( ~6 k2 W, X3 O5 Z0 v
  3.   
    ' x; K) L7 D4 {4 c, k9 m2 O  q9 a
  4. //查询btype字段中包含”15″这个参数的值  " ]4 T  Z. v. P6 `& f3 {
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

' |& ?; H, {& i- E

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

  1. $empire->fetch1("SQL语句")  
    & D6 A/ Q! [9 @, U6 E
  2.    8 G- n, k& @$ w0 N, p  A$ f$ |
  3. 使用范例:  
    : c( o9 |9 \+ K( U; f* a1 ^
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  : U1 v1 D- Q9 B9 Z( ^
  5. echo"标题:".$r['title'];  ) E' f" W3 t! ^8 A# W, ~+ c, n
  6.    
    7 J9 j' d- B' i" p
  7. 4、统计SQL查询记录数函数:  ( [' X+ v9 I& M. Z5 k8 n# }
  8. $empire->num("SQL语句")  : L. W& `) ]6 Z+ R! x& y7 g
  9. $empire->num1($sql)  7 b. o; {2 [$ }! J0 H! K
  10.    
    1 T& F6 g$ `- k0 J9 ^1 h
  11. 说明:  
    9 t& d, S* O% X  q! n  X
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    - {) {( w1 i; Z% F' t
  13.    8 i; M! j' g/ p/ @& q
  14. 使用范例:  / z( _( g1 F" ~# D+ K- \
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  $ U4 @- P' W6 a0 c' r( N& j8 w3 \
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    4 S4 J- o' M% A
  2.    5 x# Q1 K" q1 A' }+ o: X
  3. 说明:  
    * K! N* k) D; |, C: F3 `7 {, H
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    3 i" ]# i4 n: @7 n3 y
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    ! F! d( j) \" _( K
  6.    
    . n- W* o# ?: c
  7. 使用范例:  
    ; P8 W: ?" y+ u5 a: {6 h
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    . ^9 Q. i' x- d9 m5 w
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    1 d! x, [& ]5 u
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    ! |' P/ ~! ~! A
  3. $lastid=$empire->lastid();  
    * d5 f! f# h# u& ]
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  9 L4 I: G& ?0 ^# \" ?
  2.    
    ! y; e( P* j" k5 Q; _
  3. 说明:  9 U' j- [4 I6 T. y3 J9 K
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  1 _9 W' ^/ o" ]2 d/ @- s1 g
  5.    
    - V; {% X) O: H
  6. 使用范例:  
    1 t  R$ ?! v! L3 i: h
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    9 l% n4 c2 H- q+ g
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    : P3 U' f3 N; x9 j4 j! E/ {
  2.    
    5 n% S, U3 }! d& g' |
  3. 说明:  
    + o6 J3 P5 |7 J) q5 E6 n
  4. $sql为query执行SQL返回的结果。  ' ]  d% G$ N* T  |( r/ v# G: @6 a, \" ^
  5.    
    2 \" R. |6 H, a
  6. 使用范例:  2 L( L/ \3 X4 b8 Z
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    . c. s7 ?  a; ]
  8. $empire->free($sql);  
复制代码
$ z1 P2 F, {2 c

6 b3 k6 v9 x5 ^$ P& Y3 O: m. w$ R
9 q( S" s9 a; @9 I9 u: z' j" q
, J& u, E5 O+ @% j+ U& y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-20 10:59 , Processed in 0.127986 second(s), 22 queries .

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