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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    7 G1 [' A9 v! r, x1 Z
  2. define('EmpireCMSAdmin','1');  
    3 @4 a+ T/ O# D+ i& W' o( X: j
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ) S- \. b( k- ^2 S
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  1 D& x7 k* P. Z; a5 ~
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  ( Q. O9 }, }8 Q" i8 p
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  * o, ]# \; E; a3 u; k  f0 l! S
  7. require(ECMS_PATH."e/class/com_functions.php");    _9 W( g2 l# `# F' n
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
      [% t+ D4 s: M- K0 Q
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
      J4 I0 i0 v! W5 c) [% r; a
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    / y; y/ N6 r) d: w
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  5 U! X, d6 G  Q6 V9 d
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    ' J. E7 ?# E# u; F3 }
  13. $link=db_connect();  / C5 r9 q/ z$ x7 L1 h3 B# l
  14. $empire=new mysqlquery();  
    : w) N+ `6 Z0 C8 A$ S! x" |
  15. $editor=1;  
    ; k% Z7 P( f& A+ g
  16. //-------- 分页参数 --------  , @! M7 X: Y: ]4 g4 f( s. l/ v
  17. $page=(int)$_GET['page'];  
    , a$ k  A9 V- i, o- \
  18. $start=0;  # h/ e3 ]+ w: C7 C# P
  19. $line=30; //每页显示记录数  
    7 \+ u" ]; m* H% q0 W
  20. $page_line=8; //每页显示分页链接数  5 \' P! o0 {# y% B$ u- L7 p) ^
  21. $offset=$page*$line; //总偏移量  4 O3 R, n9 J) {% k. k9 a$ y
  22. //-------- 查询SQL --------  
    . v) M: W. k& ]9 A8 p- q
  23. //取得信息总数  6 S  a" T9 a+ t# u
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  + F" n* d* Q. G, S) y8 h( v8 A. d
  25. $num=$empire->gettotal($totalquery);  
    : z9 |- ^/ X& @9 {% E
  26. //select查询SQL  3 t: W! {: I5 ]# H
  27. $query="select * from {$dbtbpre}release_money";  
    4 b$ \9 _3 H. ^/ f# d
  28. $query.=" order by id desc limit $offset,$line";  * P. ?; O2 d) h7 v) p
  29. $sql=$empire->query($query);  
    8 |' H2 f+ g( k
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  9 Q6 T4 D. L" d4 N: V( F
  31. ?>  
    - M5 E% w; R  h5 ?2 Q
  32. <html>  
    # X2 R) V; B0 l5 y- N! t
  33. <head>  
    , _' L7 E7 K! M4 X# B1 m! H! I$ F
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    ( `; p' P% G5 o( V' X
  35.     <title>用户消费记录预览</title>  & S5 J% b) c9 ]6 k0 c
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  + t5 o5 ?  m8 k
  37. </head>2 w+ R" |5 _9 |5 _1 o! n. K6 I
  38.     <body>  ! }) _* Q& ]  f+ r& c" h: J) m
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    3 o* `0 X) f' H) g
  40.             <tbody>  : P; n" t, P. {( @' }  C& K. A
  41.                 <tr>   
    2 ^4 z% B, N: w* }% z8 e: Q
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ) i; k0 T  Q8 P0 @# Y
  43.                 </tr>  
    : V9 J0 X( V' {6 M# E  `5 M7 z
  44.             </tbody>  - Y* C9 [$ l- a# Z  t
  45.         </table>  
    ( v4 m; e: c4 G: A1 ~2 |
  46.         <form name="form1" method="get" action="?act=a">  
    / R! A  ?: W$ b
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    7 G: @  h3 J$ H- _) W6 Y
  48.             <tbody><tr>   - X1 x2 v. G# u$ N
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   ! G9 I# |+ g9 |0 x0 _+ v
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    ; `1 e) j5 f6 J' _% @
  51.                 <input type="submit" name="Submit" value="搜索">  
    9 f3 I3 y9 T2 ^8 @+ x  j
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  . G* ?: I8 q9 h1 d
  53.             </tr>  
    3 K4 x6 \$ F# N* F
  54.         </tbody>  
    8 f6 P6 M4 R4 g; S4 I" ]
  55.     </table>  & M! j8 p8 r4 `7 P; }. U  d' w' S
  56. </form>  
    ! ]8 i2 p9 z# U
  57. <table width="800" class="tableborder" cellpadding="3">  
    / C5 T5 |8 i$ T. t( L% U) Z% S
  58.     <tbody>  
    + I  p$ A: q! f8 E7 w
  59.       <tr class="header" height="30">   
    1 \, s- F2 N8 s0 X2 W( z0 Q" ?
  60.         <td>ID</td>  
    4 b. g# y$ I- f/ [2 u7 n
  61.         <td>用户名/用户ID</td>  ! \) e* ]; g* i; `0 d" l' y
  62.         <td>信息</td>  
    3 x% G7 U- \" ~; ]: N# S
  63.         <td>扣款</td>  4 w( a+ @$ w! ~: ~6 K
  64.         <td>时间</td>  
      g( P! Z# }3 e( {
  65.     </tr>  
    ! e$ l8 e7 k& g" J6 n& X4 l
  66.     <?php  
    ( ^# l  c8 w# J, K  W
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  & X' @% b$ @4 Y! E
  68.     {  ! J3 B4 i$ f; f: n
  69.         ?>  
    , s0 b; K  L8 {. e
  70.         <tr height="30" bgcolor="#FFFFFF">  * D% N/ ~" a) X/ [8 {3 `  _
  71.           <td><?=$row['id']?></td>  4 @  ^6 a2 u. O) b/ M  I
  72.           <td><?=$row['userid']?></td>  + |  S! F3 p% O2 f4 B
  73.           <td><?=$row['infoid']?></td>  
    8 c+ t- L! S! M$ C3 ]8 P( u
  74.           <td><?=$row['money']?></td>  
    ' N. X( t; ?3 ~! ?- o
  75.           <td><?=$row['time']?></td>  ; ~7 e' a) b, }. s5 ~* P9 \
  76.       </tr>  3 o1 W+ C! i2 q
  77.       <?php  
    ! K  }3 S+ [+ z4 A
  78.   }  
    ' ?2 F2 `" H- z0 o7 A/ ^. ^9 D
  79.   ?>  % I6 o5 O0 P5 N) R* u! K2 E
  80.     <tr bgcolor="#FFFFFF">  
    ' i+ a( c; ]6 {2 Y
  81.         <td colspan="5"><?=$listpage?></td>  6 x) {- \/ p& t+ O! J8 _& w
  82.     </tr>  3 ~( U( C) z9 F9 e' R! o
  83. </table>/ E; I' H, W# y7 I" \) B
  84. </body>  - C% @3 ~; B, Q$ P* |
  85. </html>  5 Q0 I5 V0 a. \9 T! ?# [# L
  86. <?  
    $ ~6 X: G7 a1 O! S* n" A  D
  87. db_close();  
    " f9 H/ v  c4 r1 h3 R+ V
  88. $empire=null;  ' u, q, @+ o4 z) N  J/ Y
  89. ?>  
复制代码
  1. <?php  " C  c! E# {# _
  2. include("./e/class/connect.php");   
    . t- T  E5 q& x1 U; f
  3.    
      D; z5 ]! z) c( @
  4. //后端Back-End   
    7 Q$ ^+ r4 S5 [- {# I$ ~8 |
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ( @( X6 `! I( f* l4 g
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    ; ]) h( G- Y1 j1 ~
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    ) D1 Q  j; k2 i, ?( ~
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    3 \* h0 g9 y; Q+ H8 ]- @
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    4 @8 J7 e! j: ], f* }
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    ( L* p$ Q. P0 `- q! S, Z/ K* e
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    : _" i# b; ^2 ^) u- D: Y
  12. $loginusername      = getcvar('loginusername',1);     //用户名    1 V' f% g, a+ ]; m, S3 H
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    4 n& N# m. `! o( S% i; [, t7 W+ x
  14.     0 W, L6 n0 b7 ]  {! B; z. V
  15. //前端Front-End   
    : d, S7 W- I8 L% p" @
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    ! \( M+ d0 ^0 Q: t& [6 e3 J0 x. J3 y
  17. $rnd      =getcvar('mlrnd');       //认证码加密    3 @; e# s5 Q1 r1 g! a4 K1 }: T
  18. $userid   =getcvar('mluserid');    //会员ID    2 ]* O( m+ y3 Y! E6 ^  u6 c; ]
  19. $username =getcvar('mlusername');  //会员用户名  2 h% ^% o6 S9 I# c
  20. echo $username.'<br/>';    0 A  ?7 w& o. [' ]3 W
  21. ?>
复制代码

- {/ M& t& R- t- @$ @
/ P+ @9 J$ Q- X1 T. W: B
  1. <?php  
    * h* U7 [5 v9 u+ F3 {0 @
  2. //会员信息  * _4 B) m- [  `6 y; {
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    0 T6 \" R; F1 ?" e) h" v( k, I5 z
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    " k3 e' R: e+ ]% P5 c$ P
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  $ k0 E9 j) W, r7 b
  6. if($tmgetuserid)    //已登录  
      z% B; I5 V1 ^" Q7 ]3 B& }
  7. {  
    - n2 Q( X% M4 G
  8. }else{//未登录  # y8 l$ B9 \  S4 ~
  9. };  
    + |; g9 v+ d3 x7 B# ~' J
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
* A! ]( }/ D1 t: j0 A/ M7 n
  1. //修改  / F9 O9 h# s9 c8 J, ~
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  / }1 J( \0 t, \0 I- U) h2 j
  3.   
    & @0 V' Z) x0 R7 z
  4. //插入  
    8 A% R2 n4 m$ A( D& p
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  1 Q& m9 B. a; H% a
  6.   
    - y1 s) d5 J: h# H
  7. //删除  
    ; I; v! W4 q! p
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    5 o4 ^7 r: @' A
  9.   ) v5 l) q/ h' g
  10. //查询单条数据  ' A4 d. |3 v, V) B7 j5 f9 T
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  3 v9 S% P& D" a! t$ j9 G
  12.   ( m# @% p1 p3 q; H1 U0 L5 o' I
  13. //查询多条数据  : b5 ?6 F4 G4 m, U2 d! Y, B4 e
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    0 X4 x4 `9 s2 ~
  15. while($praise=$empire->fetch($sql)){  6 X4 s: p* a. Z
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  ( D, t; Q- k6 j2 [' y
  17.   if($res){  
    # ?1 ^& ?9 b, b2 v1 a3 P
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    1 t. b7 }' l  ~  h, W' f  K/ Q
  19.   }  
    # |+ ^' S/ t8 u
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
( a# J! V6 C& h4 u$ ?
  1. //筛选包含product的,并且对question_id去重  . K( {/ ^  j) |0 G0 [
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  8 ]8 R3 C) J; @5 ?
  3.   
    4 o5 j4 g9 s5 a0 y( G
  4.   
    3 W" }, Q' ?* B" v
  5. //筛选不包含product的,并且对question_id去重  
    # V  }5 t* @3 u" u; @  Y
  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″这个参数的记录  6 S, L" Z! q1 R% R4 ]
  2. SELECT * from test where FIND_IN_SET('1',area)  
    ; r8 ^7 g& _& g, D2 t. t" `
  3.   
    . `* G: G& {% Z" c5 o
  4. //查询btype字段中包含”15″这个参数的值  
    ; H; C  n! R0 ]# r5 C5 p0 L
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

0 d2 ]& q& H. ~

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

  1. $empire->fetch1("SQL语句")  / n2 R& z/ j6 r+ |# L
  2.    
    . @* _! S' y: o: T- N* p! \+ C
  3. 使用范例:  
    / ^0 C! ]% a9 L
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  9 ~. t: f  V" P5 {
  5. echo"标题:".$r['title'];  3 ~% M8 n: q  O0 B. a9 j
  6.    ! X* B0 O+ W& ?7 r* u) r
  7. 4、统计SQL查询记录数函数:  5 p, l, k9 O' w3 R
  8. $empire->num("SQL语句")  7 L' y/ f  b! P# r/ _7 i5 g
  9. $empire->num1($sql)  
    ) \' `2 C; D% |& E' q7 v% P" v# O
  10.    
    % }+ N. ^" i1 u' X9 m
  11. 说明:  - X" u+ n) k4 y* t
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    - `& ?8 v' O8 U0 i0 L6 G" j
  13.    
    ; W& P' W& ^7 c, |* @
  14. 使用范例:  0 t$ d3 R- V! ~4 Q- V
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  ! l+ s' _4 I6 F) V
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    $ b4 T# [0 o6 _; E+ g4 I/ U4 F
  2.    
    * c' V8 W$ @  j! y, R, B+ b: X
  3. 说明:  5 V' O( }% Y" p# N
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    4 A# e: b: F- T  [5 E% y
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  + Z( h9 }+ P& z( R$ g4 y7 ?
  6.    
    0 \7 A( U# ]& J
  7. 使用范例:  
    9 l# {$ g) H8 w2 u- d
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    . R2 _4 H; C& B* m- A/ C
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    8 x" V( X) \: ?2 s; C( Y0 K
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  . ~* S2 r; l: \5 e
  3. $lastid=$empire->lastid();  * h! f* z, `7 h, M
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  2 P# A, Z% O- N/ O% B& x# o
  2.    & ~3 b4 T3 L: Y. D
  3. 说明:  
    . k  ~1 w' `; ?+ ^' R1 B
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    7 n$ O8 G0 p3 @$ c
  5.    
    : t0 r0 I9 u1 G% [, T: T2 w
  6. 使用范例:  * ^( G8 e: ?/ x
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  8 B* ?% U/ Y* H6 h) D4 s6 m
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    , A) X9 C2 Z  G6 Z/ [+ h
  2.    " h4 R- ]& }9 u3 ?
  3. 说明:  ( i& y9 E; \1 Y( ~" ?
  4. $sql为query执行SQL返回的结果。  
    % h) D" D% h' [7 {  ?
  5.    
    / T& t$ z* ~: {* A
  6. 使用范例:  
    0 ]3 a  b  Y% W+ o+ c8 e* w; M
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    / R% e% Z, R6 z; G- }7 Z
  8. $empire->free($sql);  
复制代码

$ Y. s! E6 x$ W/ W1 u5 G7 ?% U' N4 M. w( V& @" x# P: a
" V! f* M$ m! _. C$ G( Y
* f0 m* @, |0 _6 H7 e2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 17:58 , Processed in 0.076311 second(s), 19 queries .

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