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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  
    5 B. Q7 [: I3 _3 b/ C
  2. define('EmpireCMSAdmin','1');  
    - q! a7 K5 G2 B
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    & S% C1 q% L5 C9 b- T+ O. |
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
      `7 l% T+ m/ h( d4 K. W* Q4 q2 w
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  0 K) H0 @' }. E: o
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  * S1 B; N; s3 y* R" m
  7. require(ECMS_PATH."e/class/com_functions.php");  ! f- O7 v( L- U& c0 {
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    5 o3 q- N5 W& S, t5 k8 a0 {
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  7 V  |8 L  F/ a) `0 ^" [: I! I
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  3 ~& [# }8 z$ e* p6 e
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  " z) y9 [9 a3 `2 G: m% P
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
      I' L" P0 S2 A5 N& V
  13. $link=db_connect();  & @. |# R( a  F7 G4 _4 `
  14. $empire=new mysqlquery();  
    ) |4 o" r9 K4 y& i
  15. $editor=1;  
    5 N, Q- a. ]6 ~7 C; ]
  16. //-------- 分页参数 --------  4 F+ w+ L. v9 u$ e& Y- A8 F
  17. $page=(int)$_GET['page'];  
    ; \0 ]2 b" f" Y0 ~
  18. $start=0;  
    5 j% W- _% |# X2 i# x, R; D
  19. $line=30; //每页显示记录数  
    0 q) g( x& o5 W' t& W& ~3 [
  20. $page_line=8; //每页显示分页链接数  
    $ h) @6 T8 U+ ]& Q# j) a0 n
  21. $offset=$page*$line; //总偏移量  2 y: K% ~) F5 X  b6 a
  22. //-------- 查询SQL --------  
    ! J& ?* R  s% f
  23. //取得信息总数  
    : X  g1 N+ I3 {, ^- b
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    1 e1 w2 |" @  R9 A5 y8 C$ Q- ^
  25. $num=$empire->gettotal($totalquery);  
    8 O9 r" _+ u0 g4 f3 |
  26. //select查询SQL  
    5 N: G# o) |# A
  27. $query="select * from {$dbtbpre}release_money";  * T% j4 n& p4 ^  I8 Y
  28. $query.=" order by id desc limit $offset,$line";  8 i  q! K& D0 C9 b
  29. $sql=$empire->query($query);  
    " x) y% j, o* c8 E2 S
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  ; [: l9 l7 |4 @8 f/ i0 n, ?8 H  D" j
  31. ?>  
    2 M2 J1 _' \, Z7 A5 E0 ^
  32. <html>  6 U7 ^' i0 w) j, E  q6 i. m
  33. <head>  5 ~, l. O9 M/ D1 D- E- \
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    & g& g1 e. b5 Q2 _9 i' q6 J9 C
  35.     <title>用户消费记录预览</title>  
    * g8 ~- _+ z4 c4 ^; [: }9 W6 m
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    , i- U8 R+ \4 n4 M! ]7 k
  37. </head>( ?) ]- Z  g1 K' L8 J
  38.     <body>  ; E4 \& Z8 s; @- x" F9 G
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  ' D7 u' x5 u% P+ ]3 d8 L7 G
  40.             <tbody>  * V" s, F" E6 L! V$ h
  41.                 <tr>   
    4 Z! K* m4 f; J7 F
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    3 o5 p6 Z: @9 v
  43.                 </tr>  * a8 J; Q" a) T6 R) |# Y
  44.             </tbody>  
    * L  o1 Q: s& k0 k, @/ K9 ^
  45.         </table>  
    # w2 e2 T" _3 L0 J; e
  46.         <form name="form1" method="get" action="?act=a">  5 c: z7 x& c! j; p* r5 Y0 U
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  " Y& C" _$ `- H0 A& H  p/ N* _
  48.             <tbody><tr>   7 E3 ]/ j& d( ?" J4 {0 `; Y. q
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    ' W7 f  E1 b  B7 F
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  0 i% a6 X8 J- }" N  @
  51.                 <input type="submit" name="Submit" value="搜索">  
    & Z+ P  e% R! F0 l* O& v
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  1 x$ f* G4 p& b  j) t5 B
  53.             </tr>  . M9 @8 y- P* B
  54.         </tbody>  , Z' I/ ]" s0 u% y7 D* H
  55.     </table>  
    4 s$ J0 _0 u3 M+ U+ v5 H: B* [2 M
  56. </form>  
    8 T% c  ]3 g+ n5 E& C9 e/ L
  57. <table width="800" class="tableborder" cellpadding="3">  
    : l7 {3 r% `/ n+ Z' T
  58.     <tbody>  : ^4 z1 I% W  H; k
  59.       <tr class="header" height="30">   ! b" ]% p% R/ P$ T( X- a/ b7 }
  60.         <td>ID</td>  ! V3 d3 v$ T* i9 N  q
  61.         <td>用户名/用户ID</td>  ' u& c- q: I+ \' T* D6 i3 @
  62.         <td>信息</td>  
    $ j6 A$ w; z- y3 E6 J8 @+ E
  63.         <td>扣款</td>  
    : n7 V/ q/ Q2 C7 t$ ~% O5 a1 Q1 w
  64.         <td>时间</td>  , {6 w- i0 D  O- D" Q( C+ V/ \
  65.     </tr>  
    5 h0 P/ W& R# |$ u' b* u
  66.     <?php  
    : g' x1 Z5 ?3 `0 l
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    4 c' D: I. A! y  H6 U: X. ^* W
  68.     {  8 S' G6 {* f9 I4 C( u; H
  69.         ?>  & \% a: d2 V5 G( K* g" {& b
  70.         <tr height="30" bgcolor="#FFFFFF">  , H6 w; l. `! c; b9 {. k% l9 l: n
  71.           <td><?=$row['id']?></td>  $ J& d" t/ \6 ~* R  a0 B; v
  72.           <td><?=$row['userid']?></td>  & ^% I3 D# R: v! _/ Z. O
  73.           <td><?=$row['infoid']?></td>  
    " y& A9 Q% s  C) A0 d7 y
  74.           <td><?=$row['money']?></td>  
    ) }2 A0 C) b5 g4 N
  75.           <td><?=$row['time']?></td>  
    + X' A' h4 n3 s( n1 ^6 \
  76.       </tr>  - r6 \, C  s1 ~
  77.       <?php  
    6 v- z6 l' \/ f2 V
  78.   }  9 S" W- N! g# P& c8 z# \, `
  79.   ?>  8 N; F8 b& R& A- F% A. P
  80.     <tr bgcolor="#FFFFFF">  $ j2 {9 {; K0 x- l7 E' P( z
  81.         <td colspan="5"><?=$listpage?></td>  
    / i+ z2 H5 x" z/ b+ @
  82.     </tr>  
    9 W$ q" e" d! _' w; c! O
  83. </table>% d: l! k, h7 u3 e
  84. </body>  7 k+ \! W4 e& |' z" e8 e/ J
  85. </html>  
    ; ^+ A% ]6 b2 A
  86. <?  
    3 _! C$ X5 P# a' @8 Q8 g
  87. db_close();  7 X! l% l3 M2 b; E& O
  88. $empire=null;  * Y2 D/ C) Q+ X) f+ L4 Z
  89. ?>  
复制代码
  1. <?php  6 Z4 `% t& T' q( q  ]* \5 h
  2. include("./e/class/connect.php");   
    ) n! L- s$ T5 U3 s. y
  3.    
    ) r& a8 T% y$ w" C" \% ~  E
  4. //后端Back-End    2 K) Q  |; k. P3 m' `2 D
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ) E* I! \6 k7 Q! V
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    2 B" I5 e; k& Y- z5 U% ^+ [8 y
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    ! A" }: c9 h( [7 R6 C
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    * c. O  v6 q) E# ~( o3 t# @$ ]
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    . F6 Y0 T3 n+ [! e6 y
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    , j7 v) S7 B9 d2 f6 Y: l- ~1 @' Y
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    & A; I# ?6 v# w; A& R  q) a. S
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    + e* s% t7 m8 _- t- N5 l5 ~1 n+ x: u6 h
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    2 u# Z" k/ [7 D- M* S3 g
  14.       W; f/ ^0 o, b# P: [! `4 N# Q2 A
  15. //前端Front-End    - J+ H- k% R7 u/ a: f) o5 S
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    . {( t& _/ b8 H2 g
  17. $rnd      =getcvar('mlrnd');       //认证码加密    " q0 S1 o8 L1 F5 R2 u# w
  18. $userid   =getcvar('mluserid');    //会员ID   
    4 j5 d2 Q5 W* ?: Y, Q
  19. $username =getcvar('mlusername');  //会员用户名  5 k( |3 r  M4 a0 d
  20. echo $username.'<br/>';   
    : z  @8 s1 z; `+ _* i& b9 u( ?
  21. ?>
复制代码

$ h$ C% @* ]. i' r6 L$ I$ ~. ~& r0 m3 J+ \7 a1 k$ R
  1. <?php  
    ( [! K, m6 n, T3 _* d/ M2 Z( E
  2. //会员信息  + H' z, C1 G6 H
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    - l$ g5 J& T( h. {  H
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  6 B3 V, t# _; D
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
      E3 [1 ]# {- M& B8 q* [
  6. if($tmgetuserid)    //已登录  # h/ [; m/ l1 q  a5 `
  7. {  + k( c* }( h' ^8 n' z
  8. }else{//未登录  0 O: g% v1 [" [0 P
  9. };  
    ' ]; v- @8 {8 L; ]( N7 t
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
- g7 U- m/ d4 Y- u+ q  t# E
  1. //修改  
    4 \! q2 K3 p* S1 W% |
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  % i1 N7 y# z  T
  3.   
    , V) j  ?: ^. ^7 Z
  4. //插入  
      b; U9 t: C0 \4 R6 W
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  - {. w4 s% m) ~9 w4 Y) @/ J
  6.   ) X9 [6 T6 _( B0 P$ L7 C, m( t, t
  7. //删除  , v) `; n5 H1 u. _' \* s* O
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  2 n: E/ y2 A' J2 V* U
  9.   
    : o% x0 w% P% E- Q0 J" p% b
  10. //查询单条数据  & X6 S+ w8 b+ i; E$ T" t9 i
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  & ^# m& l  f/ S  F
  12.   
    ; H9 `6 u6 [, i
  13. //查询多条数据  
    & A* R! ^& E2 [, Z7 n: h
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    . C0 h- ]. r$ j6 ]2 ~7 Y! {
  15. while($praise=$empire->fetch($sql)){    a7 e3 R: ]0 d
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    5 B8 v" F; G. k
  17.   if($res){  
    ; l& c; k9 l% s3 U9 e
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  + c% L4 W2 K0 |' U
  19.   }  
    1 Z7 g) U6 @' B
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
& s- h# F2 B) Y! G
  1. //筛选包含product的,并且对question_id去重  
    5 i5 ^2 N; p+ B; ]2 ?* @( A
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  4 v: G7 F% z; X9 c
  3.   
    9 t  Z( X8 P9 {8 N+ Q7 P
  4.   7 A$ k& _) V: }# B: n
  5. //筛选不包含product的,并且对question_id去重  
    - i: E5 ~- G; ^9 K
  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″这个参数的记录  % d$ H. D% p2 E" X* Y% t  i+ S
  2. SELECT * from test where FIND_IN_SET('1',area)  " D5 w9 d( K9 `1 X% ?! u9 o& ?0 E
  3.   
    $ f# o2 b0 k. M$ X
  4. //查询btype字段中包含”15″这个参数的值  
    + r6 B' H, H! `8 y
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


7 }- Q( }& ^1 a! [' e

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

  1. $empire->fetch1("SQL语句")  $ w' i( e2 z- ^, P5 b4 X
  2.    
    ( U* Q9 ]; L$ F' u
  3. 使用范例:  
    , a( q/ U$ s$ V/ h
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  1 Y+ F  u# F& x" S0 V1 B
  5. echo"标题:".$r['title'];  
    $ F# h9 J9 G6 p- z2 [0 ?
  6.    6 Z# L$ K$ n5 w
  7. 4、统计SQL查询记录数函数:  8 p; u6 `: [* O
  8. $empire->num("SQL语句")  7 h' J/ x- T( `& Z7 n
  9. $empire->num1($sql)  
    2 U+ {* }5 [+ O9 Q6 K. }
  10.    
    ! s$ d! r# M! B6 \. g7 K8 b
  11. 说明:  
    1 o& R0 X+ M% v: d& b
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    ( N0 s( o4 F  x! S% p2 @# L
  13.    2 M5 j( b6 J1 P0 C
  14. 使用范例:  3 [/ t( G! z& V( ~
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  ' U8 |9 j8 J9 r' t6 c3 f
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    + ^: E+ j4 h$ G
  2.    
    + F& r/ |2 m4 c1 k! \
  3. 说明:  
    0 q# \9 }9 {% {1 a, J% D5 g
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    + z' @' {2 Z- [( {
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    * K' v6 b6 N* f
  6.    8 v4 u4 U. J, j* {9 o" Y9 L8 j
  7. 使用范例:  
    1 }; S' E9 }3 [
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  4 u; h; R! [8 R6 G
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  3 M6 `. f# u5 w4 u8 s; B( b
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    . h' ]. v$ Q- h. d7 `4 w
  3. $lastid=$empire->lastid();  # E/ N2 V" N, ]- D% \+ ?
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    $ k+ R! y* n2 C: M
  2.    
    " k7 |0 z, j$ r, V# ^! K1 R
  3. 说明:  
    & b) e, G* A* G3 t
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    - b2 @6 ]8 g6 Z& f7 _
  5.    6 M/ A$ h8 F" {; G. i$ ^  m
  6. 使用范例:  
    6 ~) Q, f! ^; _+ N8 ^6 N+ d0 z
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  ) O: b- ]! }5 S1 Y$ k. u$ m8 p
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)    u& G4 @% C1 c; S* X6 F* l
  2.    
    # O" j9 X& P3 W7 q7 Z; x8 A
  3. 说明:  : ~( R( _+ o# B$ O0 [  J
  4. $sql为query执行SQL返回的结果。  " r. x3 s* x# p0 n2 H& b; J: L
  5.    0 [0 @2 C, E2 U* M$ P6 R
  6. 使用范例:  ' ?( U& S% I2 |. a/ j/ }9 C
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  ( A9 p1 [; m8 \) e& y
  8. $empire->free($sql);  
复制代码
" w% G, U, Y2 [6 Y. N

$ H0 {; F" X3 T
/ ~$ H/ ^' s: q
) z3 C: J$ _; V7 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:02 , Processed in 0.050300 second(s), 20 queries .

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