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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  ! j1 n+ S! m; s
  2. define('EmpireCMSAdmin','1');  ( U" h' p4 V* R: B9 S
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
      e2 @6 v1 ~  R3 |% ]
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  3 r6 l# W- {, d: v
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  & d# E4 ~# X0 s$ j4 D. z
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    2 S( k" K# T  C, z: x! I8 @
  7. require(ECMS_PATH."e/class/com_functions.php");  
    ' e; B3 O& y# u& _; D1 n
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  + R  \; @3 C5 k7 H+ W/ t6 p+ i
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    # [6 [: {# K$ i/ G  P4 L
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    / O& n  |5 @) a+ @6 c/ E
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    9 o! M6 u4 R, m
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  $ j/ ~+ X- j5 w; M
  13. $link=db_connect();  
    . g" W9 d! N. \
  14. $empire=new mysqlquery();  
    6 E, `! h4 [" ?9 f, s" \( N: T
  15. $editor=1;  
    % @  b& |/ ~( K; y
  16. //-------- 分页参数 --------  2 C3 J  D" F* Q5 T4 c
  17. $page=(int)$_GET['page'];  
    8 l( c) C" r4 E
  18. $start=0;  6 l0 k$ Z% n. g4 m
  19. $line=30; //每页显示记录数    k* w' W& s9 ?7 C% J3 V' P% o
  20. $page_line=8; //每页显示分页链接数  # q( D7 c0 h2 D8 {3 K: R
  21. $offset=$page*$line; //总偏移量  
    $ |2 o: T1 P' Y% y
  22. //-------- 查询SQL --------  
    0 k2 {1 T, t- k- A# |6 p
  23. //取得信息总数  
    4 H/ Z6 P: C2 J, g
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  # t3 a4 K# G1 b8 S
  25. $num=$empire->gettotal($totalquery);  " v8 [1 X2 K, o2 a
  26. //select查询SQL  
    / M! ~( j/ }/ z1 v5 B9 W
  27. $query="select * from {$dbtbpre}release_money";  
    8 _2 S% ]0 `2 C# O' A
  28. $query.=" order by id desc limit $offset,$line";  ) O7 j* o7 c7 ~# E
  29. $sql=$empire->query($query);  
    5 J; b! d! F5 ^: \( S
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    / F1 A9 ^7 K; h0 j6 B. g
  31. ?>  
    ! Z% C. \- E+ V
  32. <html>  ( `* v1 b' Q, m( Y0 {: ]/ r
  33. <head>  
      ~- J6 o' F3 Z+ S
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  / n, e1 f, z* n, D
  35.     <title>用户消费记录预览</title>    ~! K& X* O0 t
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  ! j3 E; B: c- t5 M+ c( v: C
  37. </head>6 P" ^( s8 F9 V9 S
  38.     <body>  4 W$ A  G3 `) e
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    6 S% }* n& b# O- I
  40.             <tbody>  # Y# k; F7 h: ~) T; ^
  41.                 <tr>   , J* f$ n+ H  T" L+ R% g
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ' P) G! a& I) z" V
  43.                 </tr>  3 ~0 w* c) |2 F* c+ p
  44.             </tbody>  3 K4 u! l# n4 |: R
  45.         </table>  
    * a' D  ]0 U# h; l
  46.         <form name="form1" method="get" action="?act=a">  
    ( E7 @9 s6 j3 B- Q& x
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    , H) H0 I3 l5 M; L8 ]- Q
  48.             <tbody><tr>   + P, |: Q, n" S# V' Y" S
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    0 j6 W. f; S  X- u1 H% |, n6 f
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  % p0 e; l# R0 X5 m7 T; A
  51.                 <input type="submit" name="Submit" value="搜索">  . l. s' u3 q9 |( r( C# P+ _" J( |! ]
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    - b+ F% ]: [7 C' K; t% i! D) _; x
  53.             </tr>  
    : F/ s( _- D5 O1 f5 j' t
  54.         </tbody>  ) U- Y7 h* |* @$ x9 y( g0 _1 Z
  55.     </table>  / Z# Q8 M+ w$ d( Y$ j! Q
  56. </form>  3 F8 j6 [/ ?6 T0 F
  57. <table width="800" class="tableborder" cellpadding="3">  
    7 B( Q8 S3 N" q$ m2 k" n& K
  58.     <tbody>  
    # [" e7 G5 n4 b& o0 o( T
  59.       <tr class="header" height="30">   
    + i. ~- a/ p- \
  60.         <td>ID</td>  ! a5 G4 o1 _. Z& S4 U# V
  61.         <td>用户名/用户ID</td>  
    ' T+ r$ X0 m" P% @7 S; u
  62.         <td>信息</td>  + D) y, [; m' j0 K; N3 \
  63.         <td>扣款</td>  6 n0 z, R7 o. f& i  [% f
  64.         <td>时间</td>  
    ! D/ c# ~" [2 w* [4 H- F# ]
  65.     </tr>  
    6 G" I+ M" S5 V4 G
  66.     <?php  8 f3 _9 Q8 j# E, L
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  ) N6 p2 p5 m/ ^) \
  68.     {  
    % D2 f, O2 L5 h2 Y3 _) b1 G. Q' H
  69.         ?>  " E3 B+ [' K  o& G& z
  70.         <tr height="30" bgcolor="#FFFFFF">  , ?+ ~- ]" r# h8 ~4 v$ j$ t
  71.           <td><?=$row['id']?></td>  " m1 w7 |) h0 q7 K$ h$ ~# l0 n2 {
  72.           <td><?=$row['userid']?></td>  
    6 Y( V9 i* `- R0 U7 ?
  73.           <td><?=$row['infoid']?></td>  
    # m; T$ k  M$ d+ f- w7 I5 z
  74.           <td><?=$row['money']?></td>  : t2 @0 U0 |+ n4 N
  75.           <td><?=$row['time']?></td>  
    ( {+ [0 j8 b& t* c
  76.       </tr>  
    5 `1 S' S" ?/ a( U# w# y
  77.       <?php  - O8 f, A7 C! U7 g; I
  78.   }  $ J+ |9 y2 W& c+ T% J
  79.   ?>  
    ) e, r+ X; d' ]; \
  80.     <tr bgcolor="#FFFFFF">  + c/ a% }0 Q( h+ S. j
  81.         <td colspan="5"><?=$listpage?></td>  
    $ i7 r9 ]- K; Z4 e/ _" N  R1 m0 ^: U2 l
  82.     </tr>  
    : ]- @: D2 M3 }  e: J
  83. </table>
    8 j5 k. n# w4 w4 F
  84. </body>  
    ) ]7 J' b5 f: a" b2 Y2 s
  85. </html>  
    4 }" S& S+ w/ }
  86. <?  6 h' _0 d6 J! h5 L% o
  87. db_close();  
    , j" t, {5 u3 H3 I8 c
  88. $empire=null;  
    ' w) y" v2 L  P3 p/ `
  89. ?>  
复制代码
  1. <?php  
    " B( e( O0 p" Y; y& v
  2. include("./e/class/connect.php");   
    & K8 L- Y' Z: ?5 G
  3.    
    1 m4 e; C* v6 O4 ^
  4. //后端Back-End    , m9 Z6 `3 k  E! T2 V" d
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ( @3 e7 y: A1 Q/ Y% r
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    # S) P' ?( T/ n' h4 _/ _3 ^
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    ; o1 _7 v+ y' [" v+ y* [* C
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    + x1 Y- _& z$ o8 F" L9 c
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    - a1 C" U6 d2 t1 x% g4 D
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    ( s% u) b7 D( Q, Z% c9 b! E
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    ' k; g  J# A1 g* s6 a! a
  12. $loginusername      = getcvar('loginusername',1);     //用户名    / D- D; ~" _6 x1 M3 @
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    ( K& m3 [+ W% X6 {$ x7 x- G
  14.    
    2 a3 L9 z7 C1 A2 q6 B: O; G$ ?- z5 r
  15. //前端Front-End    1 f" w: _* F7 [
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    # b) Q- H$ G9 O" N: d
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    : A, J! B0 A9 `6 \9 @9 d
  18. $userid   =getcvar('mluserid');    //会员ID   
    6 c5 e/ j0 d) Z( s! r
  19. $username =getcvar('mlusername');  //会员用户名  
    ( t3 O# H- O8 x; V5 Q6 }0 `+ F7 A8 A
  20. echo $username.'<br/>';   
    : S9 F) D6 a. L% G. w# q
  21. ?>
复制代码
7 V5 W+ ^( c8 k0 b
2 q4 f) r; U1 s8 e' {& H
  1. <?php  6 b/ j6 w0 _7 m. w% F  p
  2. //会员信息  
    " ?* F2 C9 t; i, [0 k
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    " m, Z. L. l4 \
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    : M+ Y& R# q1 ~. H$ k+ |# e
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    ; C2 q2 p7 s& \) Z  f$ o
  6. if($tmgetuserid)    //已登录  5 ]" A9 \1 Y3 v
  7. {  
    3 n  V6 a# r% g% D3 O$ w
  8. }else{//未登录  . v1 ~5 r1 c( D( l
  9. };  + ~# A3 D) n1 H8 P
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
6 o& P: J  Y, ?) M: l  q
  1. //修改  
    & s2 s/ ^/ }' }: v: b
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  # Y/ D2 d& T, L  X( Y8 t
  3.   
    $ v& p7 z% r1 S9 L3 c$ M2 ]
  4. //插入  
    % N! N2 C1 Y' A' t
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    1 B7 `- b. U. c7 _+ R. Z
  6.   / G3 }5 d) U" X( N# H( A
  7. //删除  
    - e2 {* a$ {2 O4 a/ g% Z3 x; J
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  ( Q1 F$ b1 S- d! n7 e& @4 K1 z! C0 E
  9.   
    $ y% J( Q% e1 F7 c8 j, k; L! C
  10. //查询单条数据  
    & L! q$ M5 Y$ ]5 M9 J
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  3 U- x! J' ?0 n; V$ v. B
  12.   
    5 W1 M. S5 C; G9 v6 K
  13. //查询多条数据  " B4 M! ^" Y$ I9 D3 M( d9 W9 ^
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  % @7 q4 I- L0 G' H' s, q! d
  15. while($praise=$empire->fetch($sql)){  # m: R4 n( _6 ]
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    3 W4 y( o2 T; r- Z
  17.   if($res){  # n7 I- h4 s8 O
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ! x6 t! c. \9 v  O2 f' ?
  19.   }  ! K. `9 i4 O9 p8 f/ f% l
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数( Y$ F$ L; T; j5 p( B7 y: ~
  1. //筛选包含product的,并且对question_id去重  
    3 s8 s2 i: S# u  U5 V
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  : q$ R9 N/ g- ?- y& {& m: Z3 A
  3.   
      b5 E' x( O0 _3 O  D% n! t- V
  4.   
    # l$ `4 J! R8 K( r) b; T( [- n
  5. //筛选不包含product的,并且对question_id去重  
    + w/ {5 [" ]5 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″这个参数的记录  : L8 v. d! Z: q
  2. SELECT * from test where FIND_IN_SET('1',area)  0 Z( |4 K. k* K  }
  3.   
    3 o# C+ b$ b0 ^" L8 M
  4. //查询btype字段中包含”15″这个参数的值  ; L) G1 V$ P# U* s& B7 i4 c" ~0 i
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


9 c) |# O; y4 Q7 n" T! L

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

  1. $empire->fetch1("SQL语句")  
    + d* A& Z  n4 j( N# \3 ~/ P# a
  2.    
    ( F( z- w$ Z7 O; O. e3 o
  3. 使用范例:  & ~6 o3 A4 y9 m! ?
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  9 E& h; Q& T$ A9 ~' w
  5. echo"标题:".$r['title'];  
    * j" K' _0 f! |) R+ q. {
  6.    - O  F; |5 M) {# H
  7. 4、统计SQL查询记录数函数:  
    , G: I1 g; p) l# W$ s. y
  8. $empire->num("SQL语句")  % {5 N- [2 @& @+ E* O
  9. $empire->num1($sql)  
    6 g& v# L$ s3 h7 |" b& ~5 `
  10.    
    ; T# g& x( o1 c$ O4 u* E6 T
  11. 说明:  
    ; A2 [! K5 @; M. x' p
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  4 H. E7 v  ^# a& @
  13.    
    9 j. b( D6 e% r* _2 L, Y
  14. 使用范例:  
    # f- y- f4 T: i# @3 H7 P
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  / w. Y6 b3 k+ M) ?1 T9 `3 m. U
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  ) [5 o: K0 ^6 h$ E) r3 N: t/ L
  2.    
    ! K, ]9 v8 v  @' Y0 d( S
  3. 说明:  # f! w7 C& g+ [* H3 E% K. E
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    $ M4 Y; W0 g; Q. I# Y
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  - \8 q, r, R# G- Z/ j
  6.    # X" d( ~. e! o0 h& P9 Y
  7. 使用范例:  
    & j8 L# Q( I6 E1 |/ O! Q
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  * M( A( F- e: r9 n4 J0 q
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    ; n! ]. w0 g9 |5 ~
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  0 O; L' t- U3 ]' O( B# W6 t
  3. $lastid=$empire->lastid();  # u0 i6 A( k6 j2 z/ B5 F" y! E" K( E
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  & z& A  V' P4 Y2 |3 a: L
  2.    
    ( B$ y# N" s' I% R6 d
  3. 说明:  
    6 q( {; G5 G- u3 O) B: q# J/ G
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    * H1 K! Y0 z# X( ~. h% W
  5.    
    4 Z2 g# W2 n6 w1 t; U
  6. 使用范例:  / W: F) f; `7 g& P6 \
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
      i. c! i, T  K! ]- j
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    8 `, g! b1 i3 {& ]  a* f
  2.    * U5 ?9 L' `) E4 _% A
  3. 说明:  2 K) d9 O, V2 m, d4 d
  4. $sql为query执行SQL返回的结果。  
    7 o2 \1 ?; F; Q" t. w  l( X5 E
  5.    
    ; V7 b2 }1 J# D9 q
  6. 使用范例:  4 Q% T; h* K" n) ?# m. }
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    / I& q& ~# d9 A
  8. $empire->free($sql);  
复制代码
; Z# \7 G: L- X/ n: f, g; a
* _1 C& }9 {% E8 @! x
4 t0 {8 \6 r& W. O2 ^. B
9 O0 `0 C( X3 x  X% ?  d: y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-10-18 20:25 , Processed in 0.118810 second(s), 19 queries .

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