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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  - {( A& q0 l8 J3 j/ Q% V0 V
  2. define('EmpireCMSAdmin','1');  ; j( S0 \" S' e/ s; }4 y
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ! I9 n- u- _% B7 b& j
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    $ f* _4 n  }: e8 i9 i; U. F
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  4 g- G9 @' k) C( Y9 i
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    . B- C+ L, E; ?* P9 ~+ e6 H
  7. require(ECMS_PATH."e/class/com_functions.php");  
    6 U2 P+ U! E# t6 r( P" M9 m, q
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  . F: Y" d- ~9 K3 n6 Z; ]3 Y
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  ; p- m  V1 Z$ W8 e& ~
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    - h5 c2 ~& h9 ]4 E. Y) a  s
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    ( e. {2 i* ~8 g( q2 E: o; @
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  0 |/ b. r0 r& \9 X8 L: R' e
  13. $link=db_connect();  5 @1 L. e7 k( q" d1 B# q
  14. $empire=new mysqlquery();  0 y: U2 R  N9 s6 C# W  i
  15. $editor=1;  ; Q" `: L3 G5 A
  16. //-------- 分页参数 --------  * o! l9 m, d. i" j( u8 X: G
  17. $page=(int)$_GET['page'];  
      `5 r) M1 E. O$ w, |1 O# f! C# Q
  18. $start=0;  8 l( o4 t1 D8 `3 r& v( `! V- B! J
  19. $line=30; //每页显示记录数  
    * U7 a0 J4 Y4 V8 \4 ]6 z
  20. $page_line=8; //每页显示分页链接数  
    1 J. P# W7 q, Y, W3 a' t6 i3 I
  21. $offset=$page*$line; //总偏移量  - |6 n1 P0 Q( ?: D' x& s, I7 T
  22. //-------- 查询SQL --------  ) w* [$ }1 m' {. b/ [
  23. //取得信息总数  
    8 g) `: d* d3 J+ N8 R
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  - d  u' B" D9 T# }% O" |
  25. $num=$empire->gettotal($totalquery);  : M' ^, s6 ~3 \2 x
  26. //select查询SQL  ; M9 T: X5 O( S4 S/ @( h( W
  27. $query="select * from {$dbtbpre}release_money";  % U; }" p, Q; q& R
  28. $query.=" order by id desc limit $offset,$line";  
    ( ~# B8 b$ Y6 d! G( L
  29. $sql=$empire->query($query);  
    ' K! N) Z" \  l3 ]0 ~9 V4 I
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    5 N3 D+ k- o5 T# J# J$ w
  31. ?>  
    1 j6 N  I% A3 t) g$ n  U
  32. <html>  7 i+ r! p! F( t6 M+ y. E; Z! _# S9 n
  33. <head>  
    , j* p2 a2 q, }4 l9 f
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  6 c5 f' f7 I  H; m5 s6 P
  35.     <title>用户消费记录预览</title>  & |( T5 |* G% N2 j
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  . C, G4 Z# p" G+ a6 W4 i
  37. </head>3 z' V: ?' i6 ^% R% ]# |, R1 f
  38.     <body>    H9 }8 X" |# L$ f3 C
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  ; Z# l% G. w& P3 O/ a
  40.             <tbody>  " Q: O& E3 z: _
  41.                 <tr>   % x3 b* {  W& v* O2 y1 G
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ( X) C5 j$ ~: h/ e
  43.                 </tr>  
    : v8 b  E% H% W* p3 h* i  k' X  }
  44.             </tbody>  
    # F! m! ?4 R7 C2 q9 b9 J% ]
  45.         </table>  9 y/ f: \9 [$ m6 u& B$ s+ h
  46.         <form name="form1" method="get" action="?act=a">    I. A; V+ ^5 d
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  * \. l# d( P% h( R9 @3 o
  48.             <tbody><tr>   
    6 J3 ^! C! Z7 l/ |% E
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   - z. s" y7 h% Z
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    3 v5 s+ ~. l  @# Q- y
  51.                 <input type="submit" name="Submit" value="搜索">  
    ' M6 P6 h# A+ o# S2 A$ |
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    $ C2 B4 \4 J% \% v
  53.             </tr>  & T  `% W1 T- k0 e) P$ _/ G
  54.         </tbody>  
    / w! z6 V* @7 M
  55.     </table>  
    ' ]0 E( J8 p- r% l, }
  56. </form>  
      _$ }8 {* f( \% q# I3 ~( H3 G
  57. <table width="800" class="tableborder" cellpadding="3">  : i) B( f) ?% _
  58.     <tbody>  7 C1 C, Y! P; ]7 \- L
  59.       <tr class="header" height="30">   
    ; G1 g3 |/ ^+ H1 G; R/ u7 V
  60.         <td>ID</td>  
    & ]6 r  V" N  v/ U& A  s; L
  61.         <td>用户名/用户ID</td>  
    7 j% T; e5 e9 L+ o5 g
  62.         <td>信息</td>  / |  f, _& Y8 ?  G2 F0 q, |, W
  63.         <td>扣款</td>  
    4 w# m% b6 _: e0 ?* ~; w
  64.         <td>时间</td>  ; J4 ^  w5 k0 F% k
  65.     </tr>  5 h5 V* S. S+ ^0 u# Z* a; F  D
  66.     <?php  
    # l+ ]+ j3 A4 M# U( Z- F1 I+ W
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    * q  {4 i: _" T: E+ B" P
  68.     {  
    + e. l" O( H  z9 c
  69.         ?>  ( b, r4 f/ X' @5 t* j# H
  70.         <tr height="30" bgcolor="#FFFFFF">  , i8 L: s% x1 ?
  71.           <td><?=$row['id']?></td>  0 j& l! W  ?! l; v- O) [$ ~
  72.           <td><?=$row['userid']?></td>  " j4 A# L8 c& e9 \
  73.           <td><?=$row['infoid']?></td>  4 U  M! `5 L* E& U! T
  74.           <td><?=$row['money']?></td>  
    + ~6 c) _. K; p, o0 V( K# u  z
  75.           <td><?=$row['time']?></td>  0 {% J& a  Q3 b+ I6 c+ x" w. V
  76.       </tr>  
    ' `5 Y  X# I" c8 x
  77.       <?php  # C) U8 ~* n! I0 f
  78.   }  
    . A: i& @0 j" Q- \( f, C; R
  79.   ?>  # o) U8 Z: \  Y' w1 h4 T
  80.     <tr bgcolor="#FFFFFF">  
    # V! ]) V* c9 o+ X  j0 c
  81.         <td colspan="5"><?=$listpage?></td>  
    ' N' O. p* c7 y' G! d0 B
  82.     </tr>  6 l6 B: f# m" b3 u! _: u% J
  83. </table>9 j+ M( p- N8 T9 r1 b1 q
  84. </body>  
    " |3 k$ g% r7 A
  85. </html>  % U% w& c* c( u
  86. <?  
    7 {; E7 J/ v% L! [
  87. db_close();  % Q0 _$ }+ _2 {( V& x
  88. $empire=null;  & |& I1 z; b! ?- W( x% X
  89. ?>  
复制代码
  1. <?php  " c+ t' Y# P6 t2 G- w& u( _+ P: ~
  2. include("./e/class/connect.php");   
    1 [/ X. \% U$ K
  3.     3 p! A( C7 E3 v
  4. //后端Back-End    # k( s3 w) N5 \% e1 ^
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    6 o. M* Q/ [& o8 T6 y- F% U+ _
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    . W- b& n2 i+ g6 l% S
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    2 E1 @7 n( I1 t2 \9 S
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    4 n+ b) P+ F$ J
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    " k/ D+ w8 i) b* g1 u; |2 i  Z
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    0 p3 L* o- G8 _
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    6 `; a5 E6 j4 |% }
  12. $loginusername      = getcvar('loginusername',1);     //用户名    ( J. t8 X7 l& F4 J& v' y
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    ; I+ j7 X- ^5 ]6 P" k$ ~* f8 u
  14.    
    , o" y1 l# S, O
  15. //前端Front-End   
    3 P/ R& o+ L. I" h% f
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    / p$ V+ U+ C( D" z
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    5 r, Q. P  N0 k4 j, a" l3 L# K
  18. $userid   =getcvar('mluserid');    //会员ID    9 T8 {% E. M) `  I
  19. $username =getcvar('mlusername');  //会员用户名  
    . [( F( ]; U" |3 R- Z- E
  20. echo $username.'<br/>';   
    4 J6 D" M) q/ I8 V$ b: ~( H
  21. ?>
复制代码
) _7 Z) Y+ }+ n" ~# h; H

; g: S$ O# H6 a2 e
  1. <?php  & T' G4 p7 ]9 W- K) N( z6 A, b( |
  2. //会员信息    A3 x- J" P' r4 P  Q, U3 l/ o- n
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID    G4 @* d  r! S2 R( [  B
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
      e' E- ^& I5 ~7 s$ m5 e  Y8 L
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    # `: ?" a# G1 X- m8 p2 F' A& M$ m
  6. if($tmgetuserid)    //已登录  : K# `  }2 J1 J' l% i. C
  7. {  
    0 h) Q0 x" K( u
  8. }else{//未登录  
    " U- Q, H% O( \5 o2 Z& r
  9. };  . Y1 R. U9 i. y( t4 t% I
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
! i4 E. o' n# f+ K: w
  1. //修改  
    1 r: P* K5 n- q- u
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  9 U/ `% c% P  J1 |% G
  3.   * I  U# N) R. L! M) B. u$ T& w
  4. //插入  
    * E3 S6 D2 R2 p
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    9 u1 \2 j* _1 [0 H4 ]+ D
  6.   9 o. i( m2 f7 t2 e9 T( X( W6 _
  7. //删除  5 ]9 o) F* X, ^$ i& b" n% h+ u, g
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  , B/ O( g7 y" ?& x
  9.   
    / f0 a7 J% x7 i- ~0 d' v3 n( N
  10. //查询单条数据  
    9 p3 b. V7 U) n, ~
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ( n+ @3 h7 B1 M' y
  12.   5 y. @( |5 @9 t7 x1 C0 f# R
  13. //查询多条数据  / m3 @# G% h4 I( U# C7 ?
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  . a2 g' c2 a+ g# H* W
  15. while($praise=$empire->fetch($sql)){  0 c' ^: Y& J" R6 R
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    ' o! ~) W( |2 d8 N( A# T6 _
  17.   if($res){  
    9 `6 T( a2 |- W
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ! {3 O% u9 c  e. Z+ @
  19.   }  7 t4 C0 v8 ?/ f7 U2 S% d5 }' d
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数2 T, @$ q0 z; I; N$ e3 |
  1. //筛选包含product的,并且对question_id去重  
    1 w1 D) }7 m4 M
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    3 p2 d' K; g" g, V  N
  3.   7 D& m6 H6 Y. S% w, Y, s
  4.   
    / V, ~9 r. V1 ]; y1 \( E
  5. //筛选不包含product的,并且对question_id去重  
    , R, _9 P% {4 Y* V: L0 p. n2 T2 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″这个参数的记录  / \  ?2 B8 K, n
  2. SELECT * from test where FIND_IN_SET('1',area)  
    ' }" f  _3 }7 C- |5 o9 ?) A
  3.   
    : f) J0 p& w( X  U+ A0 ?* J
  4. //查询btype字段中包含”15″这个参数的值  
    - |6 x- }8 \% n9 C
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


( A: H( K  ]' R* f

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

  1. $empire->fetch1("SQL语句")  
    # J1 ~9 m) M! T( A6 M. C$ l4 \
  2.    
    / t0 X! s% A6 j% h  \9 E1 j" p2 m
  3. 使用范例:  , T: v! a) s6 S/ P2 ^* g- X9 H
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    9 t; I; q: G0 M6 u
  5. echo"标题:".$r['title'];  
    + U' T, B! r, P$ \% _0 W7 U
  6.    4 K) i" d0 m8 T% X, B, M- k) z) ~( `
  7. 4、统计SQL查询记录数函数:  
    " W+ a* g4 y' }# E+ D/ h) Q
  8. $empire->num("SQL语句")  6 q" c6 s. K4 |) h
  9. $empire->num1($sql)  
    $ d3 ?- h8 q" k
  10.    
    8 {0 I1 q5 X9 T/ ]: z! Z' s
  11. 说明:  
    7 k7 L0 m4 ^8 M5 b
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  7 \8 G# Z3 n# K$ u& w+ T, p) j
  13.    
    ! Z* O; D: z1 A# k& G* D; R
  14. 使用范例:  
    ' H7 V, X2 ]! ~7 w9 Y
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    6 y; d9 O4 a2 P% f
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    & j( N* O' I5 e5 H7 b3 H
  2.    
    ' O2 z9 X( F1 T2 G2 p- @. L  `
  3. 说明:  
    4 V" b' u5 |# n3 g3 x
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  3 A- z! c& q8 b! |+ ?; e' z% c: {
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  % J. d' C/ X5 X! q: \
  6.    
    8 _) g3 J: B  a
  7. 使用范例:  " }( B. T/ \7 _7 d6 U
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  ' M3 \4 e- V) ]& S! C+ ~- K( O
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    0 s2 J* q/ C  a, Q5 t; P
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    6 o+ r) Y" }  |. M" P. C+ }; C
  3. $lastid=$empire->lastid();  
    5 X9 }& p+ ~: U9 a
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    $ m9 m$ e* P. o6 N
  2.    
    $ `3 L% R5 y5 s1 p/ Z
  3. 说明:  
      g1 S0 d9 C( `) q* m
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  . C" K; D* [- l/ u2 f
  5.    $ m: b& g9 Q! Y8 v: y
  6. 使用范例:  
    5 b( |+ p. \, \  o  P
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  ; L$ \& }4 d) k) k! E# _( Q* ~
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  7 v7 Z: v" b0 n+ X- M4 g6 d( d. u6 \, q
  2.    ' L! B3 x. @2 i
  3. 说明:  ! O6 p% A7 N0 U/ t6 h: Z
  4. $sql为query执行SQL返回的结果。  
    6 m' Z% z5 e) M( a
  5.    
    ) C7 `7 D4 ]; @1 Y# x- u
  6. 使用范例:  
    5 j  @7 ^$ M! W* n( Q- V
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    $ j9 X% k, j: M6 u# g
  8. $empire->free($sql);  
复制代码

2 K. }  Y- @4 x$ g2 X; D1 {) z2 A5 w, s$ I( l2 B! J8 R
  U, Q: g+ ?( H8 R
0 o) b8 k- r0 s/ o7 J. v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:50 , Processed in 0.054257 second(s), 20 queries .

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