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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  8 Z! S* ^4 B0 y" V
  2. define('EmpireCMSAdmin','1');  - l( Z6 A$ z+ Z& X- T. B5 Y
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ) _- C8 L6 f, h8 J
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  " ?; @) Y0 C+ p% t
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  $ w; Y4 S1 p! `$ k7 n7 G" L
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
      z) b: K1 M) `( N  j7 D% X
  7. require(ECMS_PATH."e/class/com_functions.php");  5 A$ {  V* Q0 Q1 P/ B+ e
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  % C6 S: O$ x/ x1 E
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  ! v$ }' r" d. U; b9 O0 u! j2 g6 \
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  ) S) k" Z1 t  E$ K
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  1 [/ g- h& O4 F3 Y, r/ C
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  3 M! h8 y" B) c2 C- v( K* l/ K( z+ b
  13. $link=db_connect();  
    , }/ B3 K/ _* l  d$ m6 l1 X  M
  14. $empire=new mysqlquery();  : {- ?% p. g6 A& b/ J. i& R
  15. $editor=1;  
    , i) l6 u/ t( [3 F0 @9 ]6 l
  16. //-------- 分页参数 --------  
    ( }7 Z8 ?1 a1 E) i6 L8 |% @$ r
  17. $page=(int)$_GET['page'];  - @* s$ y3 g$ M3 u& R" F+ {
  18. $start=0;  
    ; X% _# `* q- H
  19. $line=30; //每页显示记录数  ) ]1 q: F' W& n8 Q/ ]) h9 {" \
  20. $page_line=8; //每页显示分页链接数  
    - `! Y6 a9 H% _3 d
  21. $offset=$page*$line; //总偏移量  % j: O1 U7 G. t: F; q& ^
  22. //-------- 查询SQL --------  - R- Z4 i3 Q3 V' w$ c! A( }2 F+ I
  23. //取得信息总数  
    3 a9 g0 s$ M; t: K8 ], B
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  " D% g/ S& ^6 A' x) S
  25. $num=$empire->gettotal($totalquery);  
    & c6 C& c- P! `) P4 X' B1 W5 ^
  26. //select查询SQL  ' @% X4 [- r6 l$ e& h/ u, m
  27. $query="select * from {$dbtbpre}release_money";  
    4 ]( T6 }$ c7 Q) D6 u3 w
  28. $query.=" order by id desc limit $offset,$line";  $ }7 {1 {% L; O
  29. $sql=$empire->query($query);    o! ]4 b+ ]$ b7 u
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  + O# I% `# Q4 I! u
  31. ?>  + C: y/ O0 Q! y8 f6 z6 k3 t
  32. <html>  . C5 j5 Q& c4 u/ x3 a) T
  33. <head>  
    1 W) r1 x& b" P0 @
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    3 ^; N0 J$ m9 F& B- P* M0 t
  35.     <title>用户消费记录预览</title>  
    # ]- H+ a% X0 @. Q4 j: V% @
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  # C) k; Z* Q% ?2 c* E9 ?
  37. </head>
    - u7 S/ v1 \$ c' d; Q
  38.     <body>  # ^1 c; f& T" h2 Y: q7 w+ I
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
      e8 g+ h/ {4 V
  40.             <tbody>  
    / w* g+ g2 l, I
  41.                 <tr>   / S+ y3 C+ Z( L) {+ `: {
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  ( m) V( k# X3 p* U  i
  43.                 </tr>  
    $ w/ Y1 B( r6 i7 T3 ~9 W
  44.             </tbody>  , `* y% Y8 l! d' ^& k
  45.         </table>  * c( A# \8 {  ?
  46.         <form name="form1" method="get" action="?act=a">  
    0 f, c- w* c# Q+ q9 R
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    - A) `6 l7 i! E- k* u3 W1 G/ e
  48.             <tbody><tr>   
    , `* f+ ~1 t  S0 p
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    - U; v7 I* n2 }- d  P
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  , ]3 g9 [0 x* [  D/ V$ X* G% N
  51.                 <input type="submit" name="Submit" value="搜索">  
    / T. K& i9 {) f5 g
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  ' @  {2 G* J1 d/ t
  53.             </tr>  
    * q5 u" v" n( n' m8 J% ~8 d( G
  54.         </tbody>  
    ( J) v8 e- u0 f2 q, f$ N$ Z
  55.     </table>  
    4 H0 A4 Q: y) k
  56. </form>  * P- G* r$ M7 k+ G( h# a
  57. <table width="800" class="tableborder" cellpadding="3">  
    4 k6 m! t6 ^9 T
  58.     <tbody>  
    ( p6 _) M; z2 a% C$ d
  59.       <tr class="header" height="30">   . L! M! n4 |- R0 @6 g
  60.         <td>ID</td>  
    5 ?3 d; k4 Q3 p7 ?
  61.         <td>用户名/用户ID</td>  ( N6 J& Y# k' A( m+ E" s& D
  62.         <td>信息</td>  8 a9 F3 a( ^# s# D
  63.         <td>扣款</td>  ) W$ W9 K3 j$ t0 [; W0 F5 ]
  64.         <td>时间</td>  
    % b! f( [4 o2 x
  65.     </tr>  ( @5 V; |, `/ e0 j+ v
  66.     <?php  8 N) [; D3 j) v9 @' i
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  : x5 e* z, u: m' u( J. I' {6 W
  68.     {  
    ) w7 [6 t9 O8 ?- w: W. ?# Y
  69.         ?>  
    0 w. C' N! ]) ^" g9 ~2 Z/ v
  70.         <tr height="30" bgcolor="#FFFFFF">  
    4 L- Z( W/ }/ @% o3 f4 u2 B
  71.           <td><?=$row['id']?></td>  
    . h* @& S% y% D- q  q
  72.           <td><?=$row['userid']?></td>  
    6 A8 z% J& c3 z& k
  73.           <td><?=$row['infoid']?></td>  4 @5 U3 ~' H( d5 {+ [1 F. N, u
  74.           <td><?=$row['money']?></td>  # M) V7 y& q% ^
  75.           <td><?=$row['time']?></td>  
      Y2 D0 \4 T& }4 J
  76.       </tr>  
    - A' V$ w8 x0 b, r  @& h
  77.       <?php  
    2 S; s' m* |4 }: g7 ^  Z9 h  r
  78.   }  
    + m* I* w9 N2 R; h9 R! m
  79.   ?>  
    ( l, K8 l% V, D  ~5 }. u
  80.     <tr bgcolor="#FFFFFF">  
    1 O" \& p1 ?1 P
  81.         <td colspan="5"><?=$listpage?></td>  
    0 Z* s- U6 E( a; Q5 p
  82.     </tr>  6 Q$ S& H! @0 Z" v/ Z2 L: Q" q+ {
  83. </table>$ ]2 J' U; ~1 w9 ~
  84. </body>  
    ( P1 N4 u" W: Z, {0 v$ H! S" t8 N4 j
  85. </html>  
    . ^; z+ m9 n. j4 i. n0 ?2 U! |
  86. <?  ' z9 z3 n) @2 r/ G$ H
  87. db_close();  + }/ |/ e$ V2 h5 ?" \, p* u5 R4 v
  88. $empire=null;  
    $ c! S7 |; Q8 x+ U! g
  89. ?>  
复制代码
  1. <?php  5 z" |0 n' A9 N" K
  2. include("./e/class/connect.php");    - H' V6 g" [0 O2 g, w/ O+ e# o: N
  3.     : F3 W+ P9 F- F3 }) u% z$ C6 X6 q
  4. //后端Back-End    ; Q) z0 E" j0 E% ]$ g
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    ! i; V- N0 l' t$ l& M( V0 y; ]3 v: }
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    9 N: h7 l; H/ u: P
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
      A0 h9 Z8 a) `- B
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    8 r3 M* B! z8 b
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    + n7 o  j2 K- ]7 t, h3 F
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    * m* y! d/ |9 M: P1 ^8 I
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    . A/ I  g: g8 F- F. b
  12. $loginusername      = getcvar('loginusername',1);     //用户名    0 \2 ?& D" N9 w* `
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    # @+ Q+ U3 `4 P( d5 i1 }
  14.    
    1 Z' M1 G% J( w# p* H; P
  15. //前端Front-End    2 M" E7 a: R2 i# _0 ]# x! ?
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    . @! J4 P3 o4 c0 k
  17. $rnd      =getcvar('mlrnd');       //认证码加密    1 c: T! ]; ?7 E6 L: [8 O. @0 c
  18. $userid   =getcvar('mluserid');    //会员ID    % T: @' U/ G4 y- T; b
  19. $username =getcvar('mlusername');  //会员用户名  2 s0 P% \1 s! y7 w! H
  20. echo $username.'<br/>';   
    8 H' R$ P$ s0 {  P1 G0 m
  21. ?>
复制代码
: Y* b% n# \8 {) F3 L9 R
& j( L9 H# f! o$ x( \1 b
  1. <?php  ' e5 A6 t( G! ?" _8 S  H
  2. //会员信息  
    . A0 p- T2 T# Y. g( J
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  7 z2 \7 o; s% Q% [/ q; J( P" v/ w
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  * H6 r# Z" e  M
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  ; v8 L, q) S$ h) V. f
  6. if($tmgetuserid)    //已登录  " A- ~6 E, T& H: B) f
  7. {  
    & [. B! O: `8 s# U0 k
  8. }else{//未登录  + U4 C* f% |$ L
  9. };  
    : }) C% {/ ^" f- \. d
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
' t- K' a, N7 X' b- r2 b
  1. //修改  & H' v; ~# o9 ]) h- r- @$ @
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    2 W! B9 y, o, e! f# |1 V) x- ]) ^
  3.   
    2 p- ]# F2 N1 Y
  4. //插入  
    / g' K/ _: K& D7 B
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    6 s' t5 D* x+ y; e" W$ Y
  6.   
    8 C" O/ n0 c  l. y+ I: t; L
  7. //删除  5 ?5 y1 N, J) Y9 F% S0 s
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    - F6 H& W( _; U# J( k# a% h
  9.   ; m% x  n6 x2 u) f. R5 a: _
  10. //查询单条数据  * g1 Q0 |$ s  n2 Y6 |) x/ d. \. t6 ~  `
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    * c! Z. {5 Q3 b$ |4 |$ c
  12.   / z5 B1 B- W  i0 }
  13. //查询多条数据  + @: A) V. N* Q
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  9 R6 C. e. N& N# ]$ m$ ^
  15. while($praise=$empire->fetch($sql)){  $ U, _$ v1 f" R9 [4 _* F
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  6 }. M; t. Y! n: j1 g7 g
  17.   if($res){  
    : P8 r2 Y; Q  p' Q+ h
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ! Z( O6 b& v4 g; M6 ^
  19.   }  
    ) C1 M4 S* S0 Y1 v
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
. r. y% B# ?8 T% M) Q( W
  1. //筛选包含product的,并且对question_id去重  , `: h* N! K7 b5 |: I' `9 N
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    " z% f% S$ B4 w7 B1 S1 w5 l: X
  3.   
    : b2 j: r% w& J5 k; @
  4.   % \5 Z& E% L! m  c
  5. //筛选不包含product的,并且对question_id去重  
    ; I8 d$ h! x" u& K; Q! B0 E) R
  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″这个参数的记录  
    : _7 |" q9 W' O; Z1 N$ w6 D3 S
  2. SELECT * from test where FIND_IN_SET('1',area)  
    2 o& X: c' t; s, _7 W+ V7 |
  3.   
    3 I6 p/ ]: L* `) H/ c' K& H1 q1 v
  4. //查询btype字段中包含”15″这个参数的值  
    ) @/ K1 w" e$ K1 p
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


! I, }. z* W& `+ w

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

  1. $empire->fetch1("SQL语句")  
    2 v9 Q" [' U' A* L
  2.    5 D& Z, N7 [7 s- [
  3. 使用范例:  2 H* F" [6 V, `2 U/ T
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    - C: ?) n) F5 G* \
  5. echo"标题:".$r['title'];  
    8 U; G4 P% m" p* Z" L6 d
  6.    % D$ X/ x9 H* k* g# U) P
  7. 4、统计SQL查询记录数函数:    l9 ~6 }: G3 p& v: c4 q+ [
  8. $empire->num("SQL语句")  & ~( l" R% r# G) q. s/ D
  9. $empire->num1($sql)  ' Q. T1 h& u" c' P
  10.    - Q+ w: [+ n& I# q( `" N0 {
  11. 说明:  / G! _2 P( x4 R7 l% |7 }: j
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  % X5 R# ^4 X2 U" J4 H% K
  13.    
    8 l% d; j4 k/ V2 P
  14. 使用范例:  
    * N2 k7 Y# Y, F. s% B
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  ! k4 G6 `% C$ j+ r( P+ o2 P  f
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  8 W, E4 Q! Z* j2 A, ~4 a1 D! Y# H
  2.    ) k+ A/ o& j1 `
  3. 说明:  
    $ B9 m' e% R1 o- `
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  ; N$ k. _# @$ G; @5 P& d
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  . N* [( I$ x& g, E6 M5 R# `
  6.    $ d7 L: `9 L, @
  7. 使用范例:  
    . X5 P: Z' I, }9 ?. y4 I5 R( W
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  5 q! x1 t1 B3 F. H8 u8 L
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    4 v# m% j6 y& T, P8 M, P
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  8 i; b; D9 S7 {8 V( K
  3. $lastid=$empire->lastid();  2 H4 X" R# [1 R/ P8 |6 V
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  0 Z$ J- P$ w# x; K
  2.    
    % @  Q! ?$ {7 |
  3. 说明:  
    2 b( l0 I* H: x8 E* u, t0 W3 c
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    ! d# j2 o, S) U) [1 G
  5.    
    5 i2 u0 R( `" G4 }% J9 D
  6. 使用范例:  2 ^3 W4 v  P# V+ Z2 Y! j
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    4 |. D5 n* _9 C* U, W# F; `
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  $ K* @, c$ Z6 t; }
  2.    
    6 g) N% y# P7 g! m5 y
  3. 说明:  4 b1 s" {* o4 O. w6 x8 ?& w
  4. $sql为query执行SQL返回的结果。  
      G2 H) I! a: h  G$ y. n* W
  5.    
    / _: M% J; j7 _: T. \9 _% k) H" F
  6. 使用范例:  
    5 N8 L% @5 n) J
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  1 ], b: I4 j9 `5 z/ X6 b
  8. $empire->free($sql);  
复制代码
! B8 L8 V: d5 ]; i& ~6 W
' F# o, V% L2 D9 f7 }

; t* j* H3 ^0 l6 o) F- L. |2 e5 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-23 02:31 , Processed in 0.127748 second(s), 21 queries .

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