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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    # q! z* s/ y  h7 @
  2. define('EmpireCMSAdmin','1');  ( N" ^% n2 t3 S% N2 ~  W* v/ D# S
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    ( F' h7 U; I8 _) W1 J
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  4 b+ n( [  d. }* D! E/ Q0 J. R# l, S
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    0 K6 g% @6 w0 G) i
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    7 p! y0 S7 y+ ]. u& q3 O+ I5 {
  7. require(ECMS_PATH."e/class/com_functions.php");  ' @5 _: [% E: T* b9 x: O: B
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  2 {5 ~8 g4 ~" }/ S, m
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    6 }! K+ F+ M. t% r
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  3 p6 D+ L4 ?- u
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    ' I# T* g. l0 Y4 H  O/ K
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    " q4 T& `4 I* v5 Z
  13. $link=db_connect();  : m6 Z# J7 R% Y4 v- t0 Z
  14. $empire=new mysqlquery();  
    + Z$ w+ t5 ~6 J$ W* O
  15. $editor=1;    P; N9 E8 j7 F8 V% m8 V
  16. //-------- 分页参数 --------  ! t7 J6 r5 ]" T- @: Q8 b. B
  17. $page=(int)$_GET['page'];  
    5 i9 m+ F8 k8 B, e+ f  e4 Y
  18. $start=0;  
    $ x2 O6 k- m0 a
  19. $line=30; //每页显示记录数  
    " s) d) w+ F. Q0 }/ S  L5 ]* `8 G$ J
  20. $page_line=8; //每页显示分页链接数  . a$ {' Z' ^; O4 ~$ D7 p3 s
  21. $offset=$page*$line; //总偏移量  ( R' E7 S6 {- @' K) x' E+ }
  22. //-------- 查询SQL --------  ! n& T( o/ n$ a/ U6 X% |% H
  23. //取得信息总数  
      }+ C! L4 {' T+ G# Q: Q  z
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    " g+ f" V4 t* v7 V0 |# A
  25. $num=$empire->gettotal($totalquery);  
    $ V2 j  h" |# y* ^
  26. //select查询SQL  ) l+ W; e+ a7 g& w
  27. $query="select * from {$dbtbpre}release_money";  1 s8 f+ u, b1 L4 h
  28. $query.=" order by id desc limit $offset,$line";  
    - }5 C. N+ n: x4 W, ?% d
  29. $sql=$empire->query($query);  9 W2 b6 V2 r) R# d
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  5 ], F% F# z# W
  31. ?>  3 P/ Q- j0 ]/ A
  32. <html>  
    2 c* s3 T" `7 m  A7 {
  33. <head>  $ i+ H0 G! K% h, C+ @' g
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  , {. q7 ~, y3 N: f' ^& z
  35.     <title>用户消费记录预览</title>  
    - p- \& n" d6 w- [* x3 ~
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    ; Z) K; |4 G* Y
  37. </head>! n# W7 p+ G$ u
  38.     <body>  
    6 g4 L5 Q  [' t
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  & r. n: |2 R9 a; K& m! f+ d
  40.             <tbody>  3 z) C3 f# k2 Z* H, t* N
  41.                 <tr>   : y+ W5 N) D5 K0 i% t
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  $ {3 U5 j9 ]( ^/ ?2 x
  43.                 </tr>  
    9 W+ T, I4 [( Q) h' _
  44.             </tbody>  - G2 b" L; y7 P, T# B
  45.         </table>  2 D$ p! h0 g: j- i- U0 D' m: K3 |
  46.         <form name="form1" method="get" action="?act=a">  
    % t! V. r5 q1 i( }
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  , {. H- \2 k$ x7 f7 G7 ~* ?" j
  48.             <tbody><tr>   
    ; m5 z' N& o* C  G. m
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    * M. }" e# Y; |
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  4 x+ H8 A, F1 y7 }) s
  51.                 <input type="submit" name="Submit" value="搜索">  " P4 J6 L* \/ j2 y5 m  x3 C8 f
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  # G; [8 J/ Q' o" [6 K
  53.             </tr>  
    - _+ C0 F' ?  ?/ B0 ~' Z1 W  K
  54.         </tbody>  ! {0 b3 k- d$ S( @6 X
  55.     </table>  % q* F9 i/ o1 ~* n1 ]
  56. </form>  & F* ~) w# Q6 y
  57. <table width="800" class="tableborder" cellpadding="3">  8 r' K" Q0 l  v6 b* j
  58.     <tbody>  
    ' E$ h8 F! R+ ]8 E# C. l2 ~2 v; p5 [0 Q
  59.       <tr class="header" height="30">   
    1 [6 x4 e  W' G1 H
  60.         <td>ID</td>  
    5 Z4 m$ ?( j( `! o5 W
  61.         <td>用户名/用户ID</td>  7 ~- t0 o: p8 E$ s
  62.         <td>信息</td>  ; Y! x7 `: m  ?  S* d% c( N
  63.         <td>扣款</td>  
    # Z: s+ [+ A2 I$ d( F# C
  64.         <td>时间</td>  
    - L% Y' N9 W2 I  M. M" l/ Y% N2 y
  65.     </tr>  
    * q, {' X  C% M2 c
  66.     <?php  
    # v) }0 b" B0 P2 ]3 M  [7 N% T3 H
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  ; E# g) r% |- n8 P& P) \8 @+ e
  68.     {  
    9 }/ ]/ c: L3 U# [# P4 _
  69.         ?>  
    5 G: ~, K5 x8 |$ n; \7 y2 V$ u
  70.         <tr height="30" bgcolor="#FFFFFF">  4 t9 W' b" [7 p' C- J3 e9 w8 g* i
  71.           <td><?=$row['id']?></td>  
      F6 S3 D% f$ s0 e: N% w6 N- E& X  W
  72.           <td><?=$row['userid']?></td>  ; K6 h& m% q, V6 ?8 c* N  V
  73.           <td><?=$row['infoid']?></td>  
    " z' ^/ i) E6 l, _) v1 a; _; Z) ~, N
  74.           <td><?=$row['money']?></td>  * V+ r; K+ q% y1 g6 Y/ u$ {
  75.           <td><?=$row['time']?></td>  
    1 }2 Y9 i& ]/ d" Q7 O6 F
  76.       </tr>  + f+ @0 ?- W# n; T2 w
  77.       <?php  
    , t+ V  C) N! w7 W( R" Y
  78.   }  ' w6 T* B0 S2 R  }0 t8 \/ k3 ?4 j0 W
  79.   ?>  * w# |0 p# m. z5 k
  80.     <tr bgcolor="#FFFFFF">  / r4 v' C4 M8 O. [( D2 d5 y
  81.         <td colspan="5"><?=$listpage?></td>  
    % W0 n5 E# Q5 l+ u2 u7 G
  82.     </tr>  
    & ]2 _' Y- a3 K$ x1 ]5 @. s1 m
  83. </table>' P% s) @; o/ N) {# a6 U9 H
  84. </body>  
    5 H( N2 D- x2 ^
  85. </html>  
    7 U7 ?6 }9 s" f9 w
  86. <?  0 c7 `9 n, g, b( R/ R
  87. db_close();  
    + e/ z6 g, T3 s7 o
  88. $empire=null;  8 v" [& }' _4 L2 j8 E; i$ A- C
  89. ?>  
复制代码
  1. <?php  
    2 J  S& Y: K8 W  l( N3 F
  2. include("./e/class/connect.php");   
    7 {! M( A, ~0 C( S, r0 z
  3.     . a$ J+ V! U; g: F+ L! O1 ?7 v
  4. //后端Back-End   
    5 A& {2 m1 E" w
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
      x' J/ c9 A7 P. P4 A+ @
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    + ]9 z+ z7 a0 e* [& M
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    5 W! r/ w9 i: ?  D/ h
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    8 N2 [1 x1 n) \$ w2 x7 u5 ]  u
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    6 L4 g# ]( J0 s# n* `" j) ]! {
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    # Y! T; }0 n* G: V. f8 ?! B
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    1 }: S# L$ v9 {% _1 `
  12. $loginusername      = getcvar('loginusername',1);     //用户名    0 \+ Y6 f$ }4 D6 Q0 @
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    3 ^* B5 K# y% k$ J0 F* u
  14.    
    6 a7 q& u! R* M" z! H! J
  15. //前端Front-End   
    / t! y2 c/ X( f( D+ H2 n
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    + Z) q7 o' {1 P
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    - q, T/ D0 S2 ]/ F+ r
  18. $userid   =getcvar('mluserid');    //会员ID    / {5 ~4 e/ \. R! _- K
  19. $username =getcvar('mlusername');  //会员用户名  
    * o% |1 c0 L% F1 L7 e
  20. echo $username.'<br/>';    ( F# D$ W- p9 @! N$ I  n7 s
  21. ?>
复制代码
* J% M* v( Y7 M, n8 a+ F- p

+ M8 V, c3 y( v' P3 ^$ Z
  1. <?php  / C* f: d  _  k7 L$ T  P9 i9 |5 P% W
  2. //会员信息  
    " L4 G( w2 J/ q1 ~( ~" X) d) p% ?
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  5 S& K" q3 t2 U
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    & r7 b, \7 q7 d2 T/ M) d
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  % t" y3 m  g7 T9 p7 ]! E1 y
  6. if($tmgetuserid)    //已登录  
    : ?- }  w+ r  [3 F( X% g: a0 v
  7. {  % f; L+ M2 @4 k% {( j
  8. }else{//未登录  : C3 j! \/ T* x1 j
  9. };  
    ( w! q7 H% q' d4 U( N) E
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
' ]* G. f0 h3 N' K
  1. //修改  
    ' n9 p1 _, |7 u3 @  M
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    * X. h6 x% d& z6 x1 b+ l8 a$ q
  3.   3 u7 ^: C2 L" ~
  4. //插入  ( O) G% Y4 ]/ O
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  / b/ x, t1 V0 c/ Q- \1 s7 J) U
  6.   5 q3 T4 @! P) w+ C
  7. //删除  & Q" W) |" q& @  j! b! @! a
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    ( t7 I8 ^) L( c1 u4 E# I
  9.   
    ! L# N  n3 h6 S7 W% ~, m* u
  10. //查询单条数据  : v2 Y( `% C( G8 c) ^
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    9 q0 ~) F! f- n
  12.   4 n2 a/ E; b/ e& o: w+ t2 p0 w# t
  13. //查询多条数据  ( B& u3 c; T+ J; @1 A$ J
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    4 `7 Z9 W" Q3 U: y# c, O4 N. a1 @2 g
  15. while($praise=$empire->fetch($sql)){  1 x2 y5 z5 E/ M9 s" Y, K7 f
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  * E& z- w3 J  Z9 F& C7 _
  17.   if($res){  ) I2 S5 }- ]. _( F; @: T7 S
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  2 s% A( G: D3 B+ K' B' ]
  19.   }  3 u6 B6 z9 ?0 S8 A& J
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数+ R! t3 E* l( e% t
  1. //筛选包含product的,并且对question_id去重  
    0 n: U* J; B, o% ~7 I- w
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  $ \( z+ X8 m* c( ~, f% }7 x: v
  3.   ' G' F# o2 V* d, X1 `# V, ]' i9 a( x
  4.   
    , N) p4 D7 [' A, u0 J: |: @2 B* [
  5. //筛选不包含product的,并且对question_id去重  8 b4 c& }! a, a
  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″这个参数的记录  5 n$ n6 x2 [2 e/ t# S
  2. SELECT * from test where FIND_IN_SET('1',area)  ( P( X0 H/ o! Q5 W
  3.   
    7 H/ d" }. n6 W5 m7 K& P
  4. //查询btype字段中包含”15″这个参数的值  / W5 _7 y% r# `# ?* A( u! ?
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

# A. i' {- u3 y& }; X1 j

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

  1. $empire->fetch1("SQL语句")  % G4 X- p8 K5 `7 Q( f4 p5 Y
  2.    
    0 S4 H, ^! Z4 W! c  o4 }
  3. 使用范例:  ) }. h8 Z' P( c- M- F1 j$ _
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  $ v8 u* l1 _. ~& x6 ]+ C6 K& c
  5. echo"标题:".$r['title'];  ) B( H. U  h! Z) L1 A+ J( |
  6.    4 E) p7 B( v  F* e0 \
  7. 4、统计SQL查询记录数函数:  
    0 }8 M0 u! Q9 z$ q
  8. $empire->num("SQL语句")  9 ~2 |, w3 ]+ z. K% I' l; d7 ]
  9. $empire->num1($sql)  
    1 q8 W2 B0 o9 S2 u9 ]6 I% \; m9 F
  10.    
    # I- K7 n' \- U# L8 i: s- @
  11. 说明:  , D2 P. N) m8 |3 D
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  $ d5 \  y0 }+ R, h; t7 V2 n
  13.    
    , [! Y% ~3 `* `& T. Q& B
  14. 使用范例:  : ~5 w- N% A8 s& h4 I
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  + w$ z  X9 F. N' m
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    ' l7 _8 N7 O/ q7 t4 t
  2.    
    1 [3 g+ W, J/ o  a; u
  3. 说明:  
    3 @/ z/ n3 S8 Y: a( n' D
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  , q* w. f6 R7 r! C/ K# G$ _  B# W
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  ) }0 B8 [# F7 [/ y& p; ~. [
  6.    
    7 T- ?0 m" k( u" A3 s
  7. 使用范例:  
    # H% N+ }' ]* t" B2 G
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  ! t3 K" r/ P8 Z# q9 C* f" o
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    9 L5 P) q+ F' \
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  5 p" q2 r8 |, U, N( X. }+ C+ ^4 Z
  3. $lastid=$empire->lastid();  ) u* G6 t8 c5 B5 p1 g: h$ N, b1 Z
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    # Q3 i- S) ?: D
  2.    8 U, p/ {) i6 k/ N# l; _9 O; ^
  3. 说明:  
    : S% m3 l3 A+ _( g
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    ' }" _9 w0 P0 D& A/ D
  5.    5 o% y0 d! K& ]8 S
  6. 使用范例:  
    / r  I  C- r# K5 W9 X6 g) N
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    4 X& ]) E! k) e. r3 ~4 I2 h3 Z0 A  Z: l
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  2 L4 a( f6 S6 f1 u; }
  2.    
    : l& _% M7 P# z9 f- A) V0 X
  3. 说明:  $ s/ Q1 Q2 M/ D; r: b" o# @
  4. $sql为query执行SQL返回的结果。  
    ! g. _& T; O* q+ J) S  r+ n+ |
  5.    + E( n# w2 T! y7 F% ]# z1 i/ z
  6. 使用范例:  ( H" V& G: I3 c" y0 i8 m
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  : C! K, x* y" X. R$ W$ w
  8. $empire->free($sql);  
复制代码
' D# w" w# H# Y0 v, q. ?+ _$ M
, t/ o. j  {5 O: U2 w: s
* {% m; ]/ b* |
: @0 `, r7 i: N9 y+ X3 o+ M# q0 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:25 , Processed in 0.056526 second(s), 20 queries .

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