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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    $ n6 ^* a" }) K4 L3 D
  2. define('EmpireCMSAdmin','1');  # s: ^8 [7 z3 i1 l' D
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ! y2 P0 w; [5 @
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件    Z$ ?! H* e. y1 x
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    0 U6 T2 ]' U8 K# K  [* }1 {
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  # h+ N! `. j4 J/ m9 W  U
  7. require(ECMS_PATH."e/class/com_functions.php");  
    # I$ @* f% [/ F% h0 Q7 s
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    + g* C' c. Z) F% u* f" O: z" L
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  ) l4 \; u! o% e6 V: Y; m8 D
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  - n! |, L! c! M! i, b3 ^2 a- O
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  3 f2 a9 s6 Q. {0 W& E
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    ; F- }( l- o7 b9 E6 S8 V* z
  13. $link=db_connect();  
    1 d# m& u7 s( ~
  14. $empire=new mysqlquery();  
    ! |# v8 z  V$ U' y# i
  15. $editor=1;  . D5 S- A+ V6 X* f$ Y
  16. //-------- 分页参数 --------  
    : A" c  c# Y) P! y2 n
  17. $page=(int)$_GET['page'];  
    * U: `: S! l" Y$ a9 _& D
  18. $start=0;  9 ]! j2 p9 U& r- m
  19. $line=30; //每页显示记录数  % t6 c: E  `. n+ j' D) q) j) i
  20. $page_line=8; //每页显示分页链接数  
    ' Z; u6 C( _5 u' _( `/ @8 y
  21. $offset=$page*$line; //总偏移量  4 F* w& p' v* q; ?( Y: I5 {
  22. //-------- 查询SQL --------  3 i' @7 I$ Y9 M& D
  23. //取得信息总数  
    7 ?6 u! \% p  }& B' `& o
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    # @1 V1 x! H: j) o, W( t$ E
  25. $num=$empire->gettotal($totalquery);  
    4 N* B: H4 }; L
  26. //select查询SQL  2 G+ S; H; X* }" z6 B% Y! N
  27. $query="select * from {$dbtbpre}release_money";  # `4 O5 j4 q# D0 H9 q) v# T: }' `
  28. $query.=" order by id desc limit $offset,$line";  * o* \% K5 {3 `2 x
  29. $sql=$empire->query($query);  % o% L! B, _+ n3 b8 [( z' W
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    8 d. l( ^6 u& K& I6 |
  31. ?>  
    7 s( k- I1 s3 \; r
  32. <html>  ! H$ W2 Y" X" m6 s* Y) x% ?
  33. <head>  
    6 t9 K% B7 ~6 ?# V8 ]( k. L8 u# l
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 g3 l' ~/ x  K/ L. N! k5 T
  35.     <title>用户消费记录预览</title>  8 K8 U$ |5 C# l0 @- i
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">    A. j2 N. m/ y2 Q- |) c
  37. </head>
    - o/ Z- T8 o  i: m$ t
  38.     <body>  
    - q2 M0 H! a; \6 W8 n$ Z" v, M
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  0 {! i! @- }( n% R
  40.             <tbody>  0 F# j8 c! U, q: x
  41.                 <tr>   ( d2 O. A5 J- @6 s: Q* I
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    7 n1 B& Q4 b6 g
  43.                 </tr>  1 Q: [3 b. a! {* o
  44.             </tbody>  ; N1 ~, v6 ?4 `9 B8 S
  45.         </table>  
    0 i5 W, z& J- k( {# G2 `
  46.         <form name="form1" method="get" action="?act=a">  
    : d& r% I3 L6 x$ v( R0 E
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    ; G4 A1 d' n/ @. s( j0 a( b9 ^* z
  48.             <tbody><tr>   
    & H) l2 z$ E2 ~1 y6 ~$ @! Z
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    % c, X( s- t- \7 T" A3 m
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  ; O3 U( I9 Y  L9 A, t  b
  51.                 <input type="submit" name="Submit" value="搜索">  
    2 h. `' e: l3 z% G
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    6 t8 x, m7 Z  F! G
  53.             </tr>  1 V1 d( ?: N3 a6 O
  54.         </tbody>  
    9 ^* E; F  J8 j/ b/ o
  55.     </table>  5 x' y) t4 B- e. r8 ~% v
  56. </form>  
      N/ c* D! F& c- a$ }4 J$ X$ ^
  57. <table width="800" class="tableborder" cellpadding="3">  
    + G( F8 a/ Z$ Y% l; Q* D; A; |
  58.     <tbody>  8 N% k  L' ]% K5 c* I6 n' l' b4 f
  59.       <tr class="header" height="30">   % A1 O8 N4 |" _" n
  60.         <td>ID</td>  8 M7 ~2 X4 ~# i. u+ T/ @% H
  61.         <td>用户名/用户ID</td>  8 l. w* u* R& |$ q, j
  62.         <td>信息</td>  5 @5 O6 I! A- U8 P7 \& \
  63.         <td>扣款</td>  ! v, k9 M& T1 o% _. t/ u
  64.         <td>时间</td>  8 A$ G- b4 a0 X2 F0 U- _
  65.     </tr>  $ _' ?$ i! K6 Y. d8 r0 i
  66.     <?php  # j: q" z5 X$ r
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  ( R2 d* ], k8 f# @" O3 b1 L. h
  68.     {  
    % x$ X  L" E, _  p3 a, V4 h, n0 g
  69.         ?>  
    $ s9 k, n) R( W+ d, Z
  70.         <tr height="30" bgcolor="#FFFFFF">  4 ?) I( ~. ^% a8 m9 N# `
  71.           <td><?=$row['id']?></td>  ( p3 o( t3 Z$ b1 B' r# a
  72.           <td><?=$row['userid']?></td>  ; x. Y& S5 r6 @, d  B* b# y( \' s
  73.           <td><?=$row['infoid']?></td>  ( X8 r7 |' ?/ S9 ]( ]6 a
  74.           <td><?=$row['money']?></td>  
    . O* ^! S, r. h" R* T
  75.           <td><?=$row['time']?></td>  
      e9 ?1 \, m& E3 C$ G% ^
  76.       </tr>  7 {, X1 [. E1 ^
  77.       <?php  
    ; T7 ?; y0 [& P8 u; a5 R
  78.   }  
    : i: H9 x% y( ~' q" ^
  79.   ?>  
    9 v1 y/ v; q, h& d' j
  80.     <tr bgcolor="#FFFFFF">  ' s* k+ k: d. M, p
  81.         <td colspan="5"><?=$listpage?></td>  
    ) }0 n1 C" m; x8 N% s+ r" Y
  82.     </tr>  + h4 o/ j5 ]2 L7 Z' d# F
  83. </table>2 w) F! l  y3 w2 y7 R
  84. </body>  3 N. g, p# A" G" d
  85. </html>  
    " U+ l/ U- j3 {& u! b6 w: w
  86. <?  : d& O7 J, x, ]+ k
  87. db_close();  ) |; m1 l: ?! P. r7 U
  88. $empire=null;  2 q8 k% ~+ Z/ x$ u& m# m3 [* ?
  89. ?>  
复制代码
  1. <?php  5 [+ s# `$ [; U1 L
  2. include("./e/class/connect.php");    7 C9 i) u) F3 t/ o& ~
  3.    
    9 H3 a3 o/ J  X$ z- D% ?
  4. //后端Back-End    # }1 F- o0 ]! F2 H5 o
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    6 d$ K) v- d* H, g4 K8 T% C
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    4 s$ \4 Z4 m; L+ I6 K
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    + k$ U. _! Q9 V3 ~: O( D
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    1 F, x& o3 V! Y( g7 e+ U/ f
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    1 }* h$ k7 c$ [, c6 T5 m
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    : p7 `6 a! X4 H' C
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    5 A* M' I! h" I' V' O
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    ( `5 O# D1 z. b/ L5 a2 m; ~) B
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    $ ]; f3 B1 c; R2 V% k, r* O$ K+ x
  14.     - E6 v2 [- G# y9 ?% n
  15. //前端Front-End   
    - e) n7 ~) L8 q0 z/ [" T9 C
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    + {2 Q+ T: P2 {, L- h
  17. $rnd      =getcvar('mlrnd');       //认证码加密    ; e+ P* h6 U" o+ y
  18. $userid   =getcvar('mluserid');    //会员ID   
    ; X8 R/ k# a5 P8 {3 i6 p, r6 A) I
  19. $username =getcvar('mlusername');  //会员用户名  3 |2 L. V: S. a% g
  20. echo $username.'<br/>';    : i+ R, f' X+ p, q: X* K+ v, B7 O# L
  21. ?>
复制代码

2 r9 x2 d" k* l% Y$ e' J% u8 ?+ M3 c
  1. <?php  
    - [' R( v4 p( s2 s( J# O
  2. //会员信息  , d: w' ^7 j, K. z% F! t
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  . l9 E: c/ @8 K& X$ S4 L6 r7 t
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  ( R. W% z; j" k- O8 N" j
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  ) p$ X2 x. v7 B3 U6 ^2 A6 F. v
  6. if($tmgetuserid)    //已登录  
    9 f- a# W! @1 i1 t. H
  7. {  * Y" M! w3 b$ N  q* Y7 X
  8. }else{//未登录  
    1 H( \: @1 l, j$ e3 |! V/ |# e, F
  9. };  , ?: l% D2 u: N+ y) ^4 F! Y
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:6 ?$ T* D0 i1 E9 M' ^) \6 W
  1. //修改  
    ! r; h- P9 [% E4 L
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  4 B+ h, i3 `! N4 Y# t6 \" S% J& g  |% h( |
  3.   , o* |6 H0 ~' l& b
  4. //插入  1 }# q; A( X' H' w! j! Z0 M
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    : H6 |  |  ~" ?4 A& |
  6.   
    - n/ U* f2 B/ W3 V+ O; N0 C
  7. //删除  
    - \& w% z* w/ T) o) D" e
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  + k! q7 T5 J5 t. [* F- Q
  9.   
    * g& j0 |: \# w0 Y6 q& z1 e) r3 j! }  P
  10. //查询单条数据  
    - G& n, A" F+ g1 ^7 G6 r, C% Z
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ; [! ?: @) R0 @- W2 H
  12.   7 G/ g+ Y- M" l% b! f6 ~
  13. //查询多条数据  $ R1 ], z9 v$ P$ L6 m
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    . `- f. g' E+ D+ r5 n/ K% E
  15. while($praise=$empire->fetch($sql)){  
    7 w" z6 y( F2 s
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    ! n3 X0 f5 c  T; Q( y
  17.   if($res){  - ~, P, e0 F$ `5 H2 q
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    2 o+ U' u/ D' y
  19.   }  
    3 M/ Q  H% t' i- c8 V: S, @4 i
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数- ~2 u# j( ?. C1 y( y. [( z
  1. //筛选包含product的,并且对question_id去重  + v6 W: r$ d8 c# T) F" o# x2 q
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  $ r2 N' a- z9 d4 y, R
  3.   
    9 _1 U/ g0 E: i' C  H& i5 G' c* I
  4.   
    * ^2 `$ r$ p' S' ^4 ]' ~
  5. //筛选不包含product的,并且对question_id去重  / ]! s% M& _8 H4 M9 R, C
  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″这个参数的记录  ; v- k6 f3 y6 i  v
  2. SELECT * from test where FIND_IN_SET('1',area)  + ^) g- F7 H5 a& X7 l
  3.   " [/ v! c1 e6 I' I( {
  4. //查询btype字段中包含”15″这个参数的值  ' V1 q6 B6 ?" R3 Z0 }% k
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


0 ^/ J# y8 J% G

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

  1. $empire->fetch1("SQL语句")  + U2 f  O- {- `2 E
  2.    
    ( \( C2 ~( J3 Q, b6 L' m
  3. 使用范例:  . b/ I5 ]  {9 |% L# J
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  # J6 @' J' G5 {  o; R
  5. echo"标题:".$r['title'];  
    & ~# {& G: J! }
  6.    . w, B+ X& }$ x) M
  7. 4、统计SQL查询记录数函数:  
    5 a4 |$ i# r: t$ `, A6 P+ m
  8. $empire->num("SQL语句")  ( Y% z# @$ i5 J
  9. $empire->num1($sql)  % n3 e' V0 F8 }% B0 D( B# O1 {4 N2 K
  10.    9 T" H- E3 S# F& L& h* b/ d# z" Y
  11. 说明:  
    $ u1 v! m: }9 c1 A
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  ! s0 g4 H( }; s  m1 y: k5 x
  13.    ( s; W6 L4 y* U
  14. 使用范例:  
    3 x# u, }8 r# k+ o( c& N8 T. |
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  $ Z0 a+ G2 _3 y
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  ) I( m1 c) t# O- {" P9 q
  2.    
    / t( m0 M* N  v! R  O' a
  3. 说明:  
    5 X( F( v; x* U) P% X. C5 G
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    - e% c+ h) x7 Y5 y  B
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  $ |; G* B/ L4 u0 s$ U
  6.    3 z7 h" V. X5 j$ o; C( F" O
  7. 使用范例:  ) U. J& `2 @% y4 [/ c( o' q
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  : \& J, @. ]6 O# Q
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    4 O  z" O5 ^; g% g0 P
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  / m0 ~5 a* H# A6 W# c4 f
  3. $lastid=$empire->lastid();  1 z( p. O3 N0 J5 C  H6 \$ ]
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    # a5 [+ \) u* [' f: F
  2.    
    $ s& a' E/ |' U% d$ Q
  3. 说明:  ( T  S8 }, K, o  H* h+ \! b) v
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    ' A& E! R) n7 `& h
  5.    
    + R; V! k+ }; ?2 O
  6. 使用范例:  + N# w/ c4 k( H
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  " ?" d# r: I$ o2 b$ `7 w8 l
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  . p. T( m/ U* Y- o
  2.    . @0 {/ |! `- y' \6 Y  k
  3. 说明:  + _1 u' W. D$ t2 v8 f% V8 K& K0 o9 V/ T! X
  4. $sql为query执行SQL返回的结果。  
    ( g$ s/ b7 L- ?" B
  5.    1 Y$ U" h' N! C
  6. 使用范例:  
      Z( v0 ~, M2 r" r# v6 {
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    . z6 U- T! b9 d+ {
  8. $empire->free($sql);  
复制代码
! ?' W+ Y" o( n" c1 M# K

8 q  ^- J; g" b* C' a; C+ Q
" I1 q1 w+ _7 q) G* m
- H, q- U. ~/ b( S4 V$ x; ~. S. D9 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 04:59 , Processed in 0.066349 second(s), 20 queries .

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