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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  
    ( b/ u9 s8 h) d% k2 i/ I- y
  2. define('EmpireCMSAdmin','1');  
    0 K3 @. O1 J) |+ q% r7 c( ^
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    . v2 |) ~2 q8 f. D( U! {* `3 w. p  \
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  + S! _1 U: X$ U
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    ! U( p+ g2 y% P. a
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    1 {  E, `3 J, Q0 X9 S. \+ W, q
  7. require(ECMS_PATH."e/class/com_functions.php");  5 E! A/ y2 U. V1 y! u- V
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    4 }9 P" c5 L& i
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
      ~2 C- K, T, J+ A- ]" T4 t- k
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    ) Z" s0 v2 b  C; g3 k
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  0 H* L; t" W& k1 {
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  ' Q3 K! D% t! w4 r- V
  13. $link=db_connect();  8 l$ m9 U" Z4 `+ F* R9 v; T. R
  14. $empire=new mysqlquery();  5 H8 c* W! C- M! i8 W' m6 G7 X- n5 Z
  15. $editor=1;  1 F% G9 ]. H* b0 V$ n% }$ \
  16. //-------- 分页参数 --------  ! B" B, w! Q- X2 Y* F" H+ F6 B
  17. $page=(int)$_GET['page'];  
    ' k- a' D7 |  E" J% e  A5 D' H6 M
  18. $start=0;  
    : k! e+ a) A+ A" t% g1 q% {! e
  19. $line=30; //每页显示记录数  
    & G5 b) ?! g& x: t8 g% ]" b
  20. $page_line=8; //每页显示分页链接数  ' B. f3 J7 j' s, ?
  21. $offset=$page*$line; //总偏移量  * T/ ~0 S0 m- @0 V
  22. //-------- 查询SQL --------  ) x/ }, F- y% B& z8 p+ A4 Q
  23. //取得信息总数  3 h: c- S9 r/ r
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    % g/ i8 q9 o; _! h
  25. $num=$empire->gettotal($totalquery);  
    ; P/ l6 m# `1 h, `2 H
  26. //select查询SQL  0 ?$ G, b. }) ], {2 R0 q% M
  27. $query="select * from {$dbtbpre}release_money";  ' K# Y* }) B5 p3 T. a7 c
  28. $query.=" order by id desc limit $offset,$line";  6 Q0 C9 L* `4 o" V. U
  29. $sql=$empire->query($query);  
    6 \$ r% H, K9 r( c
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  * J* L3 ~1 V8 \1 q, X8 f
  31. ?>  % F6 z$ c& u7 z; Z3 F
  32. <html>  , O( y6 o. @7 O5 g- Y3 J6 H
  33. <head>  
    8 _/ z8 q" B- f7 E4 D
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  ) }. l4 Z$ O) c/ {  r# B& c
  35.     <title>用户消费记录预览</title>  : a" u; }9 Q* i' F  V
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    * X( P% m- i9 q9 U
  37. </head>2 |* ]$ }% }5 ]9 W5 p' l' z
  38.     <body>  
    7 D/ _5 t! e+ ?; ?$ b5 Q
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    9 a6 {: f4 o6 b: |7 b0 F
  40.             <tbody>  * n* j" B- e# g, [
  41.                 <tr>   ( B* V5 g6 a" ~
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  ) }! I+ u' {" C$ I+ O; R
  43.                 </tr>    m' Z$ O1 ~! l, I7 [( h
  44.             </tbody>  
    ' m/ W5 K) ?* B. ^' U! U& R
  45.         </table>  
    " s& B9 a0 K  V1 A7 q! v: Y( }9 y
  46.         <form name="form1" method="get" action="?act=a">  ( ]3 p/ h  d: k! G4 A
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  2 _! L; h6 i  h3 q+ `5 ]( X' c7 k
  48.             <tbody><tr>   3 i& g+ H" f* ^; S6 y) k
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
      a" ]% C8 v' o( n( c  K/ {3 X
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  4 F6 g  A" G  d
  51.                 <input type="submit" name="Submit" value="搜索">  , h! a- {# V% W
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  ( J" L6 v3 b- o  {7 W* Z
  53.             </tr>  
    ( n, Y0 |: x! g) o+ @
  54.         </tbody>  3 A8 C% N" g' Q
  55.     </table>  ( `! t3 k# \# f! D
  56. </form>  ; W) o8 H. {# q: j: c' A) V
  57. <table width="800" class="tableborder" cellpadding="3">  
    ( i1 a) `) |% t  a7 W8 b: K
  58.     <tbody>  $ l7 }/ y; D) l) {1 @5 ?6 K
  59.       <tr class="header" height="30">   6 L: T( F8 ~5 a
  60.         <td>ID</td>  
    ; e4 ~) h" a7 f$ G* C
  61.         <td>用户名/用户ID</td>  
    / M9 S6 q' e  J8 C; D
  62.         <td>信息</td>  * H# h4 x3 `, W
  63.         <td>扣款</td>    U: n  u+ ~3 e% B
  64.         <td>时间</td>  ( i$ ^. }0 Y& Z% r2 k/ ?; b( Z
  65.     </tr>  
    ( D. ~. A$ b2 w% y0 U( o8 Q
  66.     <?php  2 e$ ?% G. H6 T0 u% s+ y2 z
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  * y8 f# ]0 \" ~4 y
  68.     {  
    , ?. h/ w6 i! ?# `# O; `: h
  69.         ?>  4 P, B2 B5 o8 k& ?% h
  70.         <tr height="30" bgcolor="#FFFFFF">  
    3 b6 A0 Z  J) h$ X1 p) k9 w' \
  71.           <td><?=$row['id']?></td>  ) z/ `$ {2 h7 d2 o) z
  72.           <td><?=$row['userid']?></td>    G  v. K/ R, x) [- ]
  73.           <td><?=$row['infoid']?></td>  + F* |: n: H: t+ A( ^6 Y
  74.           <td><?=$row['money']?></td>  
    4 H8 `+ `, y0 p6 I6 Z% A+ z5 C
  75.           <td><?=$row['time']?></td>  
    * O7 L  u4 X6 k
  76.       </tr>  3 F6 o  K5 ~' p# u3 s, h$ Y: g
  77.       <?php  1 J1 }: [  @! Z: Y. [! V* P
  78.   }  
    8 r  \) [* r7 @2 b9 N. h  y% t+ J
  79.   ?>  
    : A/ e( }0 I# m6 x1 @
  80.     <tr bgcolor="#FFFFFF">  & f. k7 |9 c% O6 Q4 J1 b, @" |$ Z
  81.         <td colspan="5"><?=$listpage?></td>  
    ( P6 e4 T! T8 L" [* a
  82.     </tr>  ' t1 n. ?; A! g  H: X: F
  83. </table>3 M$ Y5 N  ?/ L# C# P+ E
  84. </body>  9 ^9 I# |, ?& K8 Z( c! B
  85. </html>  
      K; x! }$ M% `# r
  86. <?  
    5 N, p, `1 Q1 U7 J* L3 c: i
  87. db_close();  
    3 b( o4 E3 s' Y5 s" v" r
  88. $empire=null;  , P+ d* ], S5 N: d
  89. ?>  
复制代码
  1. <?php  ) |1 i& s3 `) ?# R
  2. include("./e/class/connect.php");   
    - e" Q$ b) e- ^" Z
  3.    
    / @- t' W% G% g7 U5 T
  4. //后端Back-End    0 I1 x& Z6 A3 J
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    3 y5 ]4 S, `6 M* B$ R$ Y7 ?0 o
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    6 G) d3 d- v* b, G5 t
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    $ y. Y/ S7 R8 p8 q8 H4 L, V
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    6 P& L$ j) t6 \* K; v" k
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    ( V- y) P. e$ e/ E0 @% E+ S" C) b
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    2 R- i$ C! @; e3 m4 L. t
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    - p% Y" F2 l8 e
  12. $loginusername      = getcvar('loginusername',1);     //用户名    5 a7 Z4 n+ E3 p5 J
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    ! c+ a: y" y. A4 K7 k
  14.    
    " r( z1 X- _2 d  w* w
  15. //前端Front-End   
    1 P3 N& z5 A7 I
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    ' M# `. B6 E8 T! v7 Q
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    6 G3 Q/ e$ p5 S
  18. $userid   =getcvar('mluserid');    //会员ID   
    ' t  U* [  S. g3 `+ ]8 j$ W$ {
  19. $username =getcvar('mlusername');  //会员用户名  5 C0 D. @( k0 Z9 L+ m$ x& F
  20. echo $username.'<br/>';   
    7 X4 B( T% g1 |
  21. ?>
复制代码
3 \  H2 W( c& i1 w

1 g. [. c( g; K' d7 B3 g
  1. <?php  
    2 d+ f% P" N" P, W
  2. //会员信息  
      I, Y  B5 A. n
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  7 U* p9 l& n2 E5 ~
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  0 L: w2 ?2 y. V( t
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  ( `$ J0 o- u1 |0 B
  6. if($tmgetuserid)    //已登录  
    # P+ `! }9 l0 D7 [  R, X$ p7 O
  7. {  # b( Z) [4 N, k1 v3 B
  8. }else{//未登录  & U" X: F8 [6 H8 l
  9. };  
    8 y1 P) r! p7 ?' ~1 v" _4 o
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:  x" V; H* m1 H+ h8 @0 W- j
  1. //修改  ) e& S4 p+ P9 `
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
      u; H6 [) [, u  k" w9 V
  3.   
    0 N6 l: b) v6 T+ z; ~: y
  4. //插入  
    + \+ T' d9 y% U% o: ?9 @0 t, X7 Y
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    $ J* I: t0 E# f! J1 Z
  6.   & x2 y6 k+ A7 k$ H
  7. //删除  
    , v! d4 _6 n9 @& A' p0 W4 R& i4 q+ N
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  3 u( P) K; I( X$ e0 }! K
  9.   
    ) A! |, S6 i4 A$ m0 K: @% h
  10. //查询单条数据  
    & y7 E3 f% ^3 h( V; |6 }- s, `9 Q
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ! |5 h9 F3 ?  j, d& b7 p
  12.   / Z. E0 O' r+ u9 S  m! e
  13. //查询多条数据  ' d* {2 O7 k7 c% A( j
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  - e4 y) m; W0 i
  15. while($praise=$empire->fetch($sql)){  ' }1 n5 K5 }$ m* ^
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    1 B4 ^! t% X& _  }) g) c* H8 Y
  17.   if($res){  
    ) \8 ?/ d; U5 @& R3 H7 p
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    9 X% R1 Y" F" ?* A. W
  19.   }  
    , r1 _8 S; b; j- }% m3 h
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
* R3 H+ P8 V9 R0 F5 [$ {
  1. //筛选包含product的,并且对question_id去重    [( I* U0 j. i5 a3 J/ }$ U
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  . r8 L# r0 @) z+ s2 k- j
  3.   
    8 E3 s1 @2 P6 R% z& Y2 B1 ^
  4.   
    4 W3 s* k* \% \6 h1 x
  5. //筛选不包含product的,并且对question_id去重  6 S: X' K( M+ c) F$ E( B
  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″这个参数的记录  
    % `- ]: O; \9 z0 x  o) q; Q) D6 W+ g6 L
  2. SELECT * from test where FIND_IN_SET('1',area)  - g  p/ E. f) R2 H' N
  3.   
    ) N" H9 [7 b+ ?4 S: F% Y+ U
  4. //查询btype字段中包含”15″这个参数的值  $ T( ?5 t. `% V, O: a
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

' W/ z0 q4 P# M3 {% u, ], J1 ?

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

  1. $empire->fetch1("SQL语句")  & ?- E5 i; \1 \4 r- Z
  2.    
    * k" [' ^1 I4 C0 R: W, X! @
  3. 使用范例:  
    4 T( `/ A" `. n3 S* ]& u
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    / X: S2 @' z7 g+ {; H
  5. echo"标题:".$r['title'];    ~) H  o  m# l: i% h$ F0 R
  6.    
    : W- B  Z/ N8 ^  K& r. `3 B3 o; z
  7. 4、统计SQL查询记录数函数:  
    0 N! o- Z' o# s. m- o
  8. $empire->num("SQL语句")  
    & u9 L8 m0 p4 y; o) Y" @# ]8 \9 f  F3 R
  9. $empire->num1($sql)  
    4 ?0 {2 F. e' k( y
  10.    
    3 \% i, H* K6 y1 c- B! m0 v
  11. 说明:  7 d% w! m. C$ K; M1 p; u
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  , {; _) z+ p3 Q, V1 A
  13.    
    + {% j8 \5 e- t
  14. 使用范例:  
    - K4 R: x+ f1 |
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  # y: p  e* n) e0 T# j3 Z
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    6 e8 o: U$ G+ c% ^
  2.    7 L4 m, ^4 D% P" v% G% U
  3. 说明:  
    4 l. {* @& S+ P: Q( E
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    ( _5 o3 b9 F5 H  D( h
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    6 d% N0 w; a+ v) O2 D
  6.    
    3 C1 w+ l2 m4 D* z2 B* b) v) F& G
  7. 使用范例:  
    " \6 h6 }9 C$ H
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  2 Q# q( a& Y; a  V  v- t3 A
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  ! C9 y  d3 n+ Z: z
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    4 z+ i* U! @# d2 T3 ?
  3. $lastid=$empire->lastid();  / L2 \# \5 z4 B2 f  d
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  9 Y* e) [, @# d4 [, p) C
  2.    + \9 U( r  M7 H
  3. 说明:  ; ?- o+ D1 S7 ^  C7 C! I
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  , B) H! ^# N* U* q1 |* t# @' y8 g( X
  5.    
    4 [- L' V3 i  U8 b. Y, E8 c- L
  6. 使用范例:  
    . J2 \# ?$ z3 c$ n  w6 _
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  # \. b5 T1 U# z- T6 s" B1 l. ]
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    ; v1 g/ \: I% o$ j/ @" }
  2.    
    + R9 K  }$ H- {1 n9 t; v7 z
  3. 说明:  2 r! z+ }/ u; U8 E6 ]
  4. $sql为query执行SQL返回的结果。  
    % _& w4 @  m1 n$ g1 U7 ~
  5.    7 f8 r- P; i* f' J: R
  6. 使用范例:  2 q, V' A  [: ?2 S- F
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    , `$ z2 y% ~5 r6 Z5 O" I) T3 {
  8. $empire->free($sql);  
复制代码
% G3 n5 j/ v9 R2 G! u7 e4 l
+ K1 G' G! x2 i2 j
0 N6 P! ^: B6 @4 q

+ v; Z& K. M9 X7 {. q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-9-21 05:41 , Processed in 0.057821 second(s), 20 queries .

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