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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    + {7 A' K- f( b; O/ P2 [
  2. define('EmpireCMSAdmin','1');  
    . x9 R) E# B1 t5 u8 |
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    + K( a( C0 @- k  b" ~7 }0 o2 Y- P
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    * w6 a( F9 E, g6 }8 P
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  & f- r) N0 q) b$ T/ M
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    . ]) ^1 t4 U3 t8 u' c0 U$ i. O
  7. require(ECMS_PATH."e/class/com_functions.php");  
    ' A" r# O8 G5 `7 a& n1 ?$ d
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  ( }5 @' R/ p' R5 L
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    * c4 \$ G$ B7 W- j" y( F" `
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    % J# m" P: a6 X+ V# j
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    $ i6 {# N0 x0 m+ E
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  % [8 m8 K7 c: \" ~
  13. $link=db_connect();  
    $ i2 S4 W- J2 ?: X& B% k# o+ h
  14. $empire=new mysqlquery();  5 ^4 ?: Z) @$ c
  15. $editor=1;  
    : ]: N  r5 r9 X2 E  k; i6 e! a
  16. //-------- 分页参数 --------  
    7 K% S- [6 V! i
  17. $page=(int)$_GET['page'];  " N, X* B  I( m
  18. $start=0;  ! X8 v9 z" E5 Z, u) n7 [; f
  19. $line=30; //每页显示记录数  , h/ X* G0 Q6 V
  20. $page_line=8; //每页显示分页链接数  6 X& t( q* o% V+ W3 J2 G$ X" ^
  21. $offset=$page*$line; //总偏移量  
    + D0 f, L& o/ Q( b( M( Q0 @' U
  22. //-------- 查询SQL --------  
    ) u: t* W) f& N  \) Y1 r
  23. //取得信息总数  
    ) ?9 L! E2 v# o8 _. L
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    0 f; y# `3 K9 T% E
  25. $num=$empire->gettotal($totalquery);  
    9 j: b8 Y, V, E* N# ]' L, N: A* G& ~$ X
  26. //select查询SQL  
      \6 V# Z3 d3 g' @  z: E! k9 N- r
  27. $query="select * from {$dbtbpre}release_money";  
    ( c, `- |4 C" i( g$ Z7 s' |' |
  28. $query.=" order by id desc limit $offset,$line";  9 s6 I% }" d& K- Q% y
  29. $sql=$empire->query($query);  & g3 q" z9 j1 s1 ?' X" u: X1 ?4 O
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  7 e4 |' r4 [# w6 h! ]
  31. ?>  
    ' \# X8 ~5 a5 b0 i
  32. <html>  
    $ M) ^$ m4 c9 l
  33. <head>  
    8 }- x, g$ T7 A" y/ ]
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  * k( G' T3 `+ g, V8 h. W# X
  35.     <title>用户消费记录预览</title>  " f# J. C& O) V0 W) q
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    " V$ Q# ]4 o% y6 \* w. |* n
  37. </head>, T# Z# _" ~; @( S, u( j0 F
  38.     <body>  : E' q5 k5 c$ A5 K
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    / ^: s" R, R; Y4 R
  40.             <tbody>  
    ! G, B, A' d! J5 k6 W
  41.                 <tr>   
    . {: ]4 k* t' o+ W1 ~. n* c$ `. W
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  + [8 `) h7 _8 g5 l
  43.                 </tr>  
    6 I- R0 C/ ^7 o0 h' V$ @7 ~
  44.             </tbody>  
    ! \3 x2 y5 E. {1 W
  45.         </table>  
    + H* e3 W! G2 g8 T1 ]' q
  46.         <form name="form1" method="get" action="?act=a">  
    $ ?2 ~# a3 h+ @1 C( `: w
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  + h1 J3 o* K3 o
  48.             <tbody><tr>   
    $ p+ q# A/ ^" S7 A4 l# L2 D
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    # L, `2 J3 ^+ `+ P: W# z: r) r- F2 f5 \
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    $ h" i- m0 Y$ X* H
  51.                 <input type="submit" name="Submit" value="搜索">  , X  z' V3 j" q
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  $ C$ v1 o0 X3 X3 V+ [  n! w2 G, V4 C
  53.             </tr>  
    . F4 i: p: @  F8 z; ?$ F4 u
  54.         </tbody>  
    ) r* {) J3 _* q7 j7 o. J
  55.     </table>  2 y1 ^! l& P5 v. q: a
  56. </form>  
    * @: G. L/ k0 r  |# C( \
  57. <table width="800" class="tableborder" cellpadding="3">  
    : m; `: l& U# A0 N& G
  58.     <tbody>  
    ) Y! ^1 i* S2 N0 \" Q
  59.       <tr class="header" height="30">   
    ! W" h5 T% Q- l4 B& a% V
  60.         <td>ID</td>  
    + A; `$ P* t" a  J, c. A! k
  61.         <td>用户名/用户ID</td>  * F9 l( S, o2 s
  62.         <td>信息</td>  
    ( q: Y% ~+ U' f- D. L' F: }1 w0 ~( Y$ Y
  63.         <td>扣款</td>  
    3 {, N. X9 ~5 G
  64.         <td>时间</td>  ) E- m! p7 a8 a, \8 T6 @2 _
  65.     </tr>  - {# b: \* \: O  _) R- a
  66.     <?php  ; R5 k0 j4 U& k+ \) I6 o
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  9 W9 o) @5 K* L- o6 W1 V
  68.     {  
    $ B; O9 W% t7 }3 c- Y7 r
  69.         ?>  
    ! P0 J) Y4 d7 I% l( N
  70.         <tr height="30" bgcolor="#FFFFFF">  9 I/ d! E2 Y4 F0 y
  71.           <td><?=$row['id']?></td>  ! @/ d; r+ K8 q/ S* Q( r
  72.           <td><?=$row['userid']?></td>  . I/ \" f! @/ _2 m- a2 H2 J
  73.           <td><?=$row['infoid']?></td>  3 f" \! b/ L; Q7 b
  74.           <td><?=$row['money']?></td>  : L+ w% B! y. Y/ `" }# `
  75.           <td><?=$row['time']?></td>  ) {$ J& I  g" }4 a
  76.       </tr>  
    % L3 b$ P8 @9 f! Y1 l$ d$ {
  77.       <?php  
    8 u6 v6 X: o6 o: G& I1 \
  78.   }  . E5 B" ?: {- i2 K
  79.   ?>  3 B" I# F1 U% t4 l1 |+ b4 A( N" W
  80.     <tr bgcolor="#FFFFFF">  
    5 b/ }) F9 t+ C) }
  81.         <td colspan="5"><?=$listpage?></td>  % w  L4 Y8 c4 Z+ X0 q
  82.     </tr>  1 F) S" Y4 A8 \
  83. </table>( m! l: d" M5 S2 }
  84. </body>  
    ( o- L3 X( p0 G7 |+ q6 ?8 w
  85. </html>  
    . s2 Z2 p! F# K+ b
  86. <?  % q  H" b; |. e1 M. z1 V5 D
  87. db_close();  
    1 A" G/ y7 v# d
  88. $empire=null;  ' O, S4 e' B) L5 K& K& W
  89. ?>  
复制代码
  1. <?php  4 w4 K: w7 r/ p1 S( }! `
  2. include("./e/class/connect.php");    $ t2 k: A3 t( {! H( i
  3.     0 u1 \* w0 G% F$ a" W+ @! Z/ ^
  4. //后端Back-End   
    , H' U. V& D4 [! N
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    : c4 a! T& F4 B- J2 S/ u( t
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    " W' o( C7 x8 r
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    % ]/ N0 a) v! L! ^: c0 D
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    0 q' I2 ]+ g' Q% ^5 b9 @
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    ; ^8 A- v& m" z1 K& P9 S
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    1 U: e% w. w  u; o, Z" s
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    3 I3 s1 t1 V# U/ L+ D- k
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    3 Z! Q- U: g, I, {! c  ~8 V
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    4 O' Y# \: ~% ~. T1 t
  14.    
    7 F# ^+ }& e, [# L/ o' i2 j
  15. //前端Front-End    , p+ E1 Z* S6 _
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    2 b6 L0 s1 W; Z8 f9 B
  17. $rnd      =getcvar('mlrnd');       //认证码加密    * O! n& T* @, a3 ^
  18. $userid   =getcvar('mluserid');    //会员ID   
    ; y$ W# P- x# {8 v
  19. $username =getcvar('mlusername');  //会员用户名  
    , Q6 @' A+ n7 B: L
  20. echo $username.'<br/>';    , {6 E8 K, R; w3 y2 p' J
  21. ?>
复制代码

0 y( {: e3 V, F  ^) m6 C: b0 i2 l  u# P$ E; D9 ?
  1. <?php  
    % B/ Z/ t( P- e$ r  ?
  2. //会员信息  
    & N' H, x6 Q$ }- k4 i9 P2 n3 l5 ?
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    # R: O8 b2 ?  a- R# Q" H9 V
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    + Z4 w. i, r2 G
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    6 t9 A$ x" T- |; I4 w3 K
  6. if($tmgetuserid)    //已登录  
    + O* t2 i% \7 g9 w
  7. {  
    ( v8 p5 e1 D% [) u" M
  8. }else{//未登录  
    0 h3 r8 q" p) Z; l, n$ N4 l% Z
  9. };  
    2 {& @, U% L( R- O+ i
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
8 N1 |; B  r+ ^) r
  1. //修改  4 F  f' A. \! L( ~4 H3 o( s
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    2 q: H0 y  I  T; |
  3.   5 v7 f( E/ V, r* d0 S, J  A' ~
  4. //插入  . x2 }9 E' P" ~5 @; d
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");    j3 I& P& s4 U+ N5 Q
  6.   * J* f4 S' W+ `, V# ^9 d# H
  7. //删除  ' S- z  {4 A- z! m- G, N; w
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    4 U2 l% i9 y7 w6 J
  9.   
    + ?* g; V( f8 M: V; d
  10. //查询单条数据  
    . f; T: |" R4 s. t
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  8 ]% i+ }  p  G5 O9 Y/ Q0 Y. z
  12.   6 o  ]6 h. I# v* [' {3 U6 I
  13. //查询多条数据  
    3 r) O: G( M' L) ~
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  : `) `' [$ L) }  c* X
  15. while($praise=$empire->fetch($sql)){  " ]* V) M8 x+ H) H
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    & Y7 T0 O; p, @7 r* g, a
  17.   if($res){  
    4 l; e0 f+ B" t; z4 E3 O
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ( m/ l1 e- Y% s# y) |
  19.   }  
    # o, g# m6 U; n# n* I1 ]* |
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数( Q8 M0 O' n+ {7 [
  1. //筛选包含product的,并且对question_id去重  9 W) `. F4 r' c' v' c0 h. e2 ?
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    5 u7 O) P" T& J# }! A( f
  3.   
    - |& e, r8 d" Z( u- n
  4.   7 ^3 w& B4 ]. a' ~* r
  5. //筛选不包含product的,并且对question_id去重  
    $ C# Z, Y5 e7 {# ^8 T0 Z
  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″这个参数的记录  
    % L6 b6 `! K; `; C2 T' J
  2. SELECT * from test where FIND_IN_SET('1',area)  ' V2 Q  z( ^/ d, Q( N+ P3 a
  3.   & }0 n! M' U& q/ Y( J
  4. //查询btype字段中包含”15″这个参数的值  
    % L2 f5 L1 {, }' L! D% t- n: t
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

9 c: K6 ^! q) _: D( K' C  w9 G

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

  1. $empire->fetch1("SQL语句")  
    $ \7 `% w6 t( |  l3 i. f3 a
  2.    
    ! J3 X+ \( h" W% I5 Z( g3 C9 D
  3. 使用范例:  2 a9 @% ?& i3 B, Q, n* z
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    0 F$ [2 J2 S: h( h+ j+ S7 g$ M
  5. echo"标题:".$r['title'];  ) E* w. l3 Y4 M0 H/ W
  6.    
    5 r, }( O/ ?' ~
  7. 4、统计SQL查询记录数函数:  
      }! |$ n" d& d, e' T
  8. $empire->num("SQL语句")  2 _9 C4 X2 a% Y3 [5 K- u
  9. $empire->num1($sql)  
    ' _# |/ W' H4 \7 v! k( Y7 T3 f
  10.    
    ( z. i2 D( p. }( I' J$ i9 L
  11. 说明:  
    4 ^4 T. B/ E' j; x
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    ; r2 L  M" K' o$ o, a
  13.    4 Q- T& B* j; ^& c' t
  14. 使用范例:  5 C% X% C% N% b$ I# ?0 Q2 W
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  $ m5 D7 B" B8 {
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    ) n% h6 Q2 y, J4 D2 y# s- T$ `
  2.      c3 A" d% N& T! j% G! s1 {
  3. 说明:  
    0 S: O" Q* e6 @: I4 a/ W5 S9 I5 D$ \
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  8 g  q) |8 [7 W7 K( u" U; G4 G( }
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    ) |9 F; G; J8 h2 ^- I* w
  6.    
    ! u7 a% X3 A8 j' }
  7. 使用范例:  & d, Y( x0 @1 i/ [- R
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  " w+ S# U4 T: A+ d1 m
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  , F. c- ?5 @$ I0 G* \* V
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  . t1 F! Y% ?! I
  3. $lastid=$empire->lastid();  6 g; j1 q2 l) H0 z) `5 w* {7 J: Q6 Z
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    8 L% U" K: G# q5 V! [0 P( v/ g, ?
  2.    , y7 ?3 L+ c8 ^4 _
  3. 说明:  
    0 H% R* g( V0 S
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  0 f+ J( [' O: B% M4 k# y; w
  5.    " L  I9 j" e! ?2 c$ G4 E
  6. 使用范例:  + ^& f& l  Z3 X: H
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    - M0 H# |0 B2 R1 j2 u9 i8 Q
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    2 [7 l; \! D6 l) O" o8 R
  2.    % b+ ~( C% _9 n8 v  n6 b+ x9 f
  3. 说明:  
    - x, o7 ~1 V: w1 c/ _
  4. $sql为query执行SQL返回的结果。  
    9 }8 B( N& f) u: y7 ~! S& k: z
  5.    ) a' T  m7 m; J
  6. 使用范例:  ) }7 k- Y8 d- J
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  ) V" K2 i+ A8 a) s
  8. $empire->free($sql);  
复制代码

* l  a, r5 ^2 r2 \/ g2 |- P# Y3 c
" ^6 }" C) ]% t# x) G3 g6 S$ k: p! y5 R* x
/ C* w1 j6 x4 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 20:27 , Processed in 0.053246 second(s), 19 queries .

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