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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    1 Q$ ^5 U9 h- @/ a7 S" W
  2. define('EmpireCMSAdmin','1');  # F0 g. o# h" K- \, E! s# ^7 R/ S
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  9 @0 P% _+ _, y  X" r6 L# f
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  % l9 u/ g8 s  i* y4 m% p; x
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    ; b# \, w3 ~; C6 ~7 R5 J
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    # H" M# P& R3 ~! y; ?, X
  7. require(ECMS_PATH."e/class/com_functions.php");  
    / B  ~; u7 T, |6 g0 D9 C
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    ! \. p6 B+ X$ @% [4 q0 V, R
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  ! l/ g- s" }& V. W+ M
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  # s. a# q& z$ R6 G5 W& @% ]6 J3 K
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    " p! e. f( E, Q) `! D7 w4 b
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    7 M! G& ~" H/ @. _
  13. $link=db_connect();  4 l2 F9 ]% V# h& n+ h2 N
  14. $empire=new mysqlquery();  & Z0 I+ U( v4 c0 n5 ^
  15. $editor=1;  
    ; V+ n& T, K$ W" O9 n. q% r7 ~! c
  16. //-------- 分页参数 --------  7 m$ q( t* D+ J4 {3 O; s
  17. $page=(int)$_GET['page'];  5 q! [/ i& t/ ?0 ~9 j
  18. $start=0;  
    * U9 V4 o  R1 l% y5 x; L( p
  19. $line=30; //每页显示记录数  
    4 i- ~% `! a: ]" t  g. f0 `& p% q
  20. $page_line=8; //每页显示分页链接数  " |: I/ d+ n3 A0 X8 A
  21. $offset=$page*$line; //总偏移量  ; v9 {. L9 w2 M  S" I- j
  22. //-------- 查询SQL --------  
    ' Q' F& v" A& r
  23. //取得信息总数  ' {2 P# h" f7 T# Q
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    7 \$ I. b3 |4 g7 r" I% y3 i1 \& A
  25. $num=$empire->gettotal($totalquery);  9 z7 k3 i( |9 m6 g
  26. //select查询SQL  
    2 [! j' o" i! ?) V
  27. $query="select * from {$dbtbpre}release_money";  4 y! K1 g! S( d2 Q: d3 A* N" {
  28. $query.=" order by id desc limit $offset,$line";  ' R$ h* H' a+ ]% Q  e4 v
  29. $sql=$empire->query($query);  8 ~; A- A2 [) U. Y
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  4 w; \2 @% i% N& r( F
  31. ?>  
    9 {$ [: v& W4 t- g6 |
  32. <html>  7 J8 T1 ~0 r. I' F
  33. <head>  
    0 ]8 d$ E. ?/ A2 G. r$ {
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    / P/ h# M8 I" H9 N  D3 [. x# f
  35.     <title>用户消费记录预览</title>  0 D# w8 Z2 G! w/ m( v* ?
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    & y* D& C; \$ u7 g
  37. </head>
    # _+ k& E) N- l! Z
  38.     <body>  
    ) M0 [% }7 ~- y+ c, S* V$ ?/ E
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  ! A. |. l# G3 L
  40.             <tbody>  : k8 V7 T, R: Q& b9 f
  41.                 <tr>   
    # w6 n9 b" R  E0 [2 c2 r- O, O
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    5 o* ~  H6 a% `; E' X
  43.                 </tr>  
    0 y2 O0 ]- Q& ]. G
  44.             </tbody>  
    7 d- b$ b7 _$ N% {3 {
  45.         </table>  ' O& V/ \: M- X$ B1 E5 {
  46.         <form name="form1" method="get" action="?act=a">  
    * N- A8 {! |# w3 y
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  2 f% w& ]$ p, n3 x0 G5 S
  48.             <tbody><tr>   " u7 {9 X- L) K" o% J  ?2 C5 a# L+ k
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   * R( p' K: v- ^& V$ E
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    $ N. O7 q& U, m7 c7 h
  51.                 <input type="submit" name="Submit" value="搜索">  
    # S% s6 \2 X, i6 @
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    % i, p6 D. i' t
  53.             </tr>  
    $ R$ d5 a  M  C8 G
  54.         </tbody>  
    : u) n# @: i3 F- ]
  55.     </table>  . V! M* \8 p, u8 l: k
  56. </form>  
    , {8 y7 o, M# H
  57. <table width="800" class="tableborder" cellpadding="3">  : j" C2 L0 g, s( `7 ], j
  58.     <tbody>  5 M) m5 t! k  b" q6 L: k+ G9 h; a  \
  59.       <tr class="header" height="30">   * Y% X+ T1 K5 v& M% ?4 \
  60.         <td>ID</td>  
    - k1 P% _1 K+ C, U! ^9 u; t
  61.         <td>用户名/用户ID</td>  % X) B5 v! t; F! ^( ]- K
  62.         <td>信息</td>  
    & M9 t  ~4 `2 i+ U  T
  63.         <td>扣款</td>  1 d$ r! a! l, r$ c, f
  64.         <td>时间</td>  
    $ l! A( w+ W" L0 L
  65.     </tr>  
    . M( Z" `  D3 o5 V. \+ t6 m/ T6 I
  66.     <?php  
    4 A! Q( I. E9 e
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    # j1 N# P: a' ]+ I6 b
  68.     {  
    1 p1 q; [2 r+ |+ [% J$ l
  69.         ?>  + ]* @8 M2 \3 a0 f! b4 q
  70.         <tr height="30" bgcolor="#FFFFFF">  / ^8 C- |- n' x% T4 w* C  q
  71.           <td><?=$row['id']?></td>  
    & c' V- `# \6 u0 u9 g( U$ H
  72.           <td><?=$row['userid']?></td>  8 |+ f' p/ g3 C, P- ^  g8 @6 s8 l
  73.           <td><?=$row['infoid']?></td>  
    1 [. C, Q; |' \; ~: ]0 C& U
  74.           <td><?=$row['money']?></td>  ; S' F: a4 e  x3 y
  75.           <td><?=$row['time']?></td>  
    8 l6 b0 D2 M/ d: j
  76.       </tr>  
    ' b) s& X. _3 D( _- z; I7 m
  77.       <?php  
    ) v) ]. q4 s  Y# w
  78.   }  
    ! X8 i' i( _# p' w/ e1 p8 H
  79.   ?>  ( [2 x' d/ @& G9 y/ J3 `; y+ o
  80.     <tr bgcolor="#FFFFFF">  
    1 J+ p9 X1 t% E
  81.         <td colspan="5"><?=$listpage?></td>  
    4 y5 W# C0 w9 A
  82.     </tr>  
    2 w5 i* q4 G7 t  l
  83. </table>' |! y3 f. ]6 a
  84. </body>  
    6 y7 ?) t  g! z% O2 N8 E
  85. </html>  + m% w+ j) V9 M" d3 A& V
  86. <?  * T9 Y+ u1 D. |  x
  87. db_close();  
    2 N4 j4 n4 ~; w% y8 h- m
  88. $empire=null;  
    4 i: a' k  \1 b' L! L8 R' a, s/ }
  89. ?>  
复制代码
  1. <?php  * T9 F+ L2 N& q5 {' O
  2. include("./e/class/connect.php");    0 ^" p  p8 P5 q% L
  3.    
    ' q2 U6 _' N) q" P
  4. //后端Back-End    & v7 }/ |6 d& c. X. ?& A
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    8 p* E4 A4 G5 }$ ~+ Z
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    4 ?! K+ k# Q* H" z. e: l& u6 X
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    5 B( F4 c( o0 p
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    / j$ K8 ]8 I( o1 d) E) W. m( J. t
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    . t* T1 a) r' r6 f
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    2 S1 p  {: }/ R( X) N' o
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    - l8 Q% ~6 D* W( Z3 \2 [- S2 z! F
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    8 _$ v) r, p; D
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    4 [" H. Z4 V: X9 {, q! C+ c/ @
  14.    
    3 E$ s5 Y+ Q+ r- z7 k$ {
  15. //前端Front-End   
    - q& n# p. B8 \" j
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    . n+ D( Y' [" P) P4 h. E
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    9 F2 m# K( U) s% ?& e5 b
  18. $userid   =getcvar('mluserid');    //会员ID   
    # M! n% S4 L" ?' g* G8 I
  19. $username =getcvar('mlusername');  //会员用户名  3 u' L7 U# m1 B) B
  20. echo $username.'<br/>';    + d3 k- a  |% q' K
  21. ?>
复制代码

' ?4 u3 w& E6 o. @! Y& M* J& j( x6 Y  m. ?, z* z# g  [. o* Q: |
  1. <?php  
    $ T) A3 ]+ _  g  b% c" V7 u1 f- c
  2. //会员信息  
    " Q) ~+ W' v/ y/ e
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    + t( D3 o7 U$ `5 j6 }
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    / ]" |% P' L, J' e5 u" Y/ p. y
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    4 m) b: M; N( D1 N+ i
  6. if($tmgetuserid)    //已登录  
    ; b) V1 n& {8 c2 d& ?3 _4 R  N* `2 r* m
  7. {  % G. A5 K( W  Q9 A
  8. }else{//未登录  , S. @$ V8 M8 |& h) @/ B4 t, M# L
  9. };  2 T3 Z. g& F8 |$ E2 ~; p2 P5 s
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
' k3 a7 n8 z5 V3 v8 j5 e% y& l2 N5 y
  1. //修改    v$ A: y0 C7 K; G" s
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
      X* c" Y" |- Z
  3.   2 `' h2 E" C% x. ?9 d
  4. //插入  
    2 v, V9 f& J) q, N
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    ; O% k6 q+ A# I" S
  6.   & V9 N- S! ^$ R% L
  7. //删除  
    4 N7 A' J* k2 R9 J
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    ; x6 e6 s, R$ E2 K
  9.   7 N, K) T0 w. T, f0 F2 L
  10. //查询单条数据  , e5 e' i  s5 E
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    / _: y' u- X* I5 q0 P' t/ F! T5 l
  12.   
    0 G  ^" ~2 W; H+ m$ Q- W7 ~/ H
  13. //查询多条数据  ' Q2 K( c2 P. L* G% c
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    . D# c! J; k5 i2 r2 j
  15. while($praise=$empire->fetch($sql)){  ( c' Y0 C, x1 }
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    ' p: ]2 Y6 G6 `: M( c$ _' S' r) d
  17.   if($res){  
    ' n. Y. z2 u. I7 Y/ L- G
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    : [. q' R- V# P
  19.   }  * r1 m' |- t# k; F
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数9 m4 |8 o" I% Z3 ~! w  y: }
  1. //筛选包含product的,并且对question_id去重  
    5 T4 Z- v, I" s* F# `6 E4 b' }
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  6 W$ J5 w! H) d
  3.   
    ( P5 Q- C8 b$ E2 q$ w4 g0 Y' P; y
  4.   7 [3 m# h. m8 b# U/ T
  5. //筛选不包含product的,并且对question_id去重  $ Y3 ?8 Q! i+ ?# d
  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″这个参数的记录  
    ) u& Q! \0 I$ n$ j
  2. SELECT * from test where FIND_IN_SET('1',area)  & t9 }; x2 ~2 [9 r0 d0 G
  3.   
    % p+ ?$ [) `) B' R6 G
  4. //查询btype字段中包含”15″这个参数的值  - q1 Y; T9 X( q: D4 \5 J3 u
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


! w; s& e, N+ u

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

  1. $empire->fetch1("SQL语句")  
    2 k" V9 O. k  }/ \5 a7 _# ]# h0 M) U
  2.    1 _' N8 x# l9 T9 P: W
  3. 使用范例:    M, D4 J+ _. I. q& I* k
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    ' W$ x4 ^$ y6 S! y" W7 W
  5. echo"标题:".$r['title'];  ! w( U5 q2 }- K4 w
  6.    
    3 j: i/ T. I9 P/ w- c
  7. 4、统计SQL查询记录数函数:  ( t- y3 N' E( A3 q  b$ {( m$ z
  8. $empire->num("SQL语句")  
    8 c6 e6 @7 k" L7 \+ {
  9. $empire->num1($sql)  
    * G9 r6 }2 E3 w% ?! t
  10.    
    0 E/ k3 r3 m; E5 M
  11. 说明:  : U! ?% ?6 F# {9 q( u7 _
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    8 ?3 W8 T; x5 [# ~
  13.    
    ; X+ X* `7 P: [
  14. 使用范例:  0 M$ l! r$ b0 f6 I3 F: G
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  9 n5 D* w! d) Y
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    $ a5 {5 E! S. o3 m/ x
  2.    
    # D* H4 O2 z4 j% c
  3. 说明:  7 T6 u9 W% h. S* g7 d+ v
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    ! k: l$ t) _- Y6 N
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  1 t/ P6 h% a, w& h2 {
  6.    
    . S: t' X8 u, z: j1 `! ^
  7. 使用范例:  " l4 ~% p6 O9 P4 K  D5 C9 P& V
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    ' \) [* B& O- [) F
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    ; K. q* A6 f6 s% u* z
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    2 K2 m8 H" D5 e% B8 [7 h; D
  3. $lastid=$empire->lastid();  
    1 U2 H2 E" p4 `# j) R
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    ; L, A$ e7 |2 P# ^' O; K; `
  2.      V6 \7 B4 L) H# |7 X
  3. 说明:  0 H8 Q% r4 q' x: k! S* _6 n5 z
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  6 ^* ~$ |3 s" e0 T2 U+ w- q- y" G
  5.    , i' p; ]/ \$ L6 I% U+ @% N) k7 A
  6. 使用范例:  
    9 Y/ D7 `/ U+ \* A- |) p% g
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
      N. e* P* [0 _5 H0 C( ~# |. n
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    2 I* [9 w) d& w7 X  p
  2.    
    " _6 c' x4 n: Q3 w. ]% m
  3. 说明:  
    0 Q) X2 E$ `! f! I0 f
  4. $sql为query执行SQL返回的结果。  * O% {" d4 ?$ }" e
  5.    ' N% b) F  @& C* Q; r
  6. 使用范例:  
    6 ?/ a; I; F0 j  U0 z. D
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");    k& K6 d- Y( F/ P" `
  8. $empire->free($sql);  
复制代码
, c3 q7 j0 F. q; k* A+ ]
" w5 h/ |- ?# @# C3 S' N8 a

1 m- _- I$ r6 w) S0 @' ^
2 p' e( v/ g) }4 X" x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-9 08:43 , Processed in 0.125175 second(s), 21 queries .

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