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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
      z! u7 o9 _; a0 D
  2. define('EmpireCMSAdmin','1');  : y- z$ n0 R& B7 J
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    " I, R, ^1 I1 z
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    1 V, f, Y9 ^7 _" i. b& y9 v7 }
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    4 l3 f# _! G9 M
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    + {4 _; \, z* ?' V$ `8 l
  7. require(ECMS_PATH."e/class/com_functions.php");  6 u" ^1 h, m6 i% f, X: x( v+ ~+ X8 q' H
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  9 b0 u7 m' g$ h0 N+ e* L/ u
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  ( b8 ]% r# O7 l7 S$ V
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  8 E5 m# Y6 V, b
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    : j# B: P3 Q5 h$ C
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  / N$ E# ?5 l2 H( ~! q3 I
  13. $link=db_connect();  ; T$ H/ m: S2 f
  14. $empire=new mysqlquery();  4 L0 N0 R% b8 s9 u6 A' |5 p! k
  15. $editor=1;  6 H- @/ l0 k$ ^6 V: n8 V8 f
  16. //-------- 分页参数 --------  $ ?+ `( b2 Y6 Q7 [: l% B( e
  17. $page=(int)$_GET['page'];    ?% q5 B4 f& j6 d
  18. $start=0;  1 ^+ C/ s, n1 Y3 b
  19. $line=30; //每页显示记录数  
    8 Y# B3 j; w! U7 e! a4 D, A
  20. $page_line=8; //每页显示分页链接数    Y9 s7 F$ h% O( k
  21. $offset=$page*$line; //总偏移量  
    7 j$ N; T& \0 Z4 f8 g; e  d
  22. //-------- 查询SQL --------  9 @) g6 c6 c6 u' c
  23. //取得信息总数  
    2 w  D! J$ X% S1 C9 p3 \
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    2 J1 Z: B' B) o1 p
  25. $num=$empire->gettotal($totalquery);  ! a' N2 D4 E; F  w
  26. //select查询SQL  $ Q. n- t& ~. R4 i2 x% H; a" f5 X( ?
  27. $query="select * from {$dbtbpre}release_money";  ( t; W9 a2 y& A3 Q7 B
  28. $query.=" order by id desc limit $offset,$line";  : ^' {* G3 H7 Z$ U) q
  29. $sql=$empire->query($query);  
    * ?5 a. ^$ f" _3 j6 h. u
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    - D* M3 N1 R5 T" M8 j
  31. ?>  1 |* j. C. i7 g4 Y. \" J
  32. <html>  $ W% ]; }; z/ I& ?7 D2 V
  33. <head>  : `8 f- p' m* _' q4 a3 m; X7 A
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    9 T4 H' {. e/ {) Z: Z
  35.     <title>用户消费记录预览</title>  
    6 b- g% N, i# D# y# N7 _5 a& m3 @
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    % M4 W  j. O  ~4 h  @: _" ~
  37. </head>  Q) N; k, K) ?; z9 U
  38.     <body>  
    : {1 t" i5 k- n, |
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    6 v* p3 c/ K! z/ U
  40.             <tbody>  " j$ q6 o! h& u, H: T! n; w. M; |
  41.                 <tr>   , y( M; D5 S9 n) E2 g: Z
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    . @' K& f0 ^0 A2 K. W/ L
  43.                 </tr>  ) F5 g. @9 p/ E7 ~* _4 H
  44.             </tbody>  
    / |6 ?4 L5 Y% c, i
  45.         </table>  
    & |8 `# k) u6 P5 P7 S1 ]
  46.         <form name="form1" method="get" action="?act=a">  * i) _+ s; C- @1 X7 F
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    . \4 q' g; b% f' U
  48.             <tbody><tr>   
    & o/ d% ^: M8 u
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    5 h* Y0 O3 F4 j" W0 r- i
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    ; L& _! ?% q$ |$ h& r
  51.                 <input type="submit" name="Submit" value="搜索">  : G- z$ ~. K) d
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    ( U7 B9 v# P+ t& @) ^) v
  53.             </tr>  
    1 E2 R% n# k/ q3 L( y/ Z
  54.         </tbody>  
    % I  |5 C8 r: a* I6 x5 d  ]
  55.     </table>  # m4 E9 }/ n7 j0 B2 A% X9 b
  56. </form>  ) N( |3 P$ Z9 H" p4 |4 i; a' l
  57. <table width="800" class="tableborder" cellpadding="3">  ! f2 k8 n5 T: E
  58.     <tbody>  
    7 d% p' d, H! u+ Z# x: {6 s; j2 P
  59.       <tr class="header" height="30">   
    2 i8 @3 g2 `& H
  60.         <td>ID</td>    u6 f1 n. V1 D) E! G# T! p7 C  t9 u
  61.         <td>用户名/用户ID</td>  
    - Z3 O, e1 A7 c. C1 h
  62.         <td>信息</td>  
    4 W/ |% F1 M1 |. [' p4 F- f
  63.         <td>扣款</td>  7 V; ~+ G0 b% t0 s+ P! u" g$ j* p
  64.         <td>时间</td>  
    ' E& x/ y3 t1 \  y% B3 g: o6 l
  65.     </tr>  * O- V& [5 ?9 `) v8 s5 m( {$ @
  66.     <?php  
    8 X- K7 h* j. R
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    8 ?: V: b- R& J6 |  \, B' |
  68.     {  
    7 _8 l8 _6 Z! ~$ e# H, }
  69.         ?>  
    ; s$ Y$ E; Z* X" h4 e. W
  70.         <tr height="30" bgcolor="#FFFFFF">  8 B. n; ~& V) r4 {
  71.           <td><?=$row['id']?></td>  4 l& @# w# u: L1 R2 P1 l/ e
  72.           <td><?=$row['userid']?></td>  
    / }; H3 y+ T- D* ~
  73.           <td><?=$row['infoid']?></td>  
    * |3 F4 h$ U; E' y# O
  74.           <td><?=$row['money']?></td>  0 ~( J; b. G& j, J3 ^3 R9 F: b+ t" Z
  75.           <td><?=$row['time']?></td>  % ~  `4 x, C1 k
  76.       </tr>  - l' u7 g5 M- G7 @+ s" r
  77.       <?php  
    7 i5 H- F8 L4 \7 N
  78.   }  / y: N1 Q' s8 @3 t1 c
  79.   ?>  & N' e6 p$ E9 q0 W* f; B1 {
  80.     <tr bgcolor="#FFFFFF">  
    * }2 f+ o( [4 n& n, A% D  f% J
  81.         <td colspan="5"><?=$listpage?></td>  * I  L2 Z- [% w, J$ L5 A7 Z
  82.     </tr>  ) j( V. p0 N- f; J
  83. </table>
    # p% A+ Z. |; g2 t# g% v, l9 |6 j2 L
  84. </body>  
    5 E! v" o3 ^$ B% \* W/ e0 ?2 V
  85. </html>  
    1 I0 o. I! l- u# C) z
  86. <?  4 f% v! y+ G( H' v
  87. db_close();  ! n7 x7 q* Q" G3 n" [7 {
  88. $empire=null;  
    6 f! G- P9 f* ~7 l6 u( L
  89. ?>  
复制代码
  1. <?php  5 K# s% J. a  A
  2. include("./e/class/connect.php");    + g" E5 ?  L6 c9 r  a
  3.     + }1 T- h, o5 x, T& [) i* r$ f
  4. //后端Back-End   
    3 j' K6 N$ Y. @5 J
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    ' L( X  j. Q8 E8 ]1 x- W0 g
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    1 H# a( n2 d! b1 [7 E; S, }
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    0 ]  i) S/ e9 {7 h3 W( i7 \: o+ B
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    ' f: ~0 X, i7 Q% Y
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    $ W! Z3 z/ a# j+ h
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    : ]0 u% A+ x0 O! Y% w# U* n5 ?
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    ! P' z/ T. Y, `; S% ^" ~" ?6 Y) }; }% [2 \
  12. $loginusername      = getcvar('loginusername',1);     //用户名    # I/ o6 w* C# G1 F; N3 z- e
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    1 A! n) D7 t; A
  14.    
    + M$ n% _7 y" ~! j4 B
  15. //前端Front-End    . W1 j/ u  X+ C& `
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    . Z- }5 r7 N1 z$ h/ t  ?
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    - H9 H5 g( K8 j0 q; d
  18. $userid   =getcvar('mluserid');    //会员ID   
    1 w2 Z: _0 E" ~6 j
  19. $username =getcvar('mlusername');  //会员用户名  
    7 l; e- \) S  {9 m
  20. echo $username.'<br/>';    ! ~( A+ Y! I; y" V8 |: c2 b/ r
  21. ?>
复制代码

+ l/ L) E9 O' S
6 |' K  j) Y1 [% ]
  1. <?php  
    5 C. @; s& U' }  h
  2. //会员信息  # S/ \  O( C& w; b9 |# O
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    3 _  `/ ^& m3 \
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  8 m" _4 E. G; }- `1 Y3 B# ^& [
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  # A1 w+ j0 u4 m; }3 u
  6. if($tmgetuserid)    //已登录  
    - d: O/ j6 _! i
  7. {  
    # `& a6 r+ X! w: f2 \! X
  8. }else{//未登录  , L6 N# g+ v6 ^9 \! x
  9. };  ( t8 }- s2 f7 k6 ^
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
8 C. ?' L, V* C( ?# z
  1. //修改  
    % A- z1 n" R( s3 S; N
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    * d; u0 f; G' `
  3.   ; b4 j7 C, g* B' m, F
  4. //插入  3 b6 P# a' o( D1 V) E6 Z, f4 }% U8 K
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    2 k- [5 T3 L0 k/ B
  6.   $ X' d6 {0 `0 f9 W+ V4 `, M
  7. //删除  
    ) r/ n+ a' t& t, X, q% Y  D
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    , G! K! u4 _8 l: L. i( T/ X. T
  9.   
    . b9 \1 ^1 e# ~" H) B! b9 H
  10. //查询单条数据  
    , Z2 J# [) j) u; R
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ) f5 N7 u9 [, k5 m& {
  12.   
    1 {& `' ^! v" R4 L6 _1 j
  13. //查询多条数据  
    ; p7 ~. M+ O& [
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  % ^0 o/ D3 D2 ~
  15. while($praise=$empire->fetch($sql)){  1 x8 S' u% Z7 ]: h
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  2 ], j; u$ R, ?( e
  17.   if($res){  
    + F: P' `" v% I* A  K
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  5 x# U, g8 ~5 B/ v$ L- I
  19.   }  
    " ]# Y. h. P: d; O; a2 j. |
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
: W$ @/ [8 j. J# Z* f. o
  1. //筛选包含product的,并且对question_id去重  , Q. g: G) K# Y2 j$ h4 T5 v& K7 g( _
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  + S9 u9 n7 I& w4 H
  3.   
    , \! |9 V3 Z& a' K
  4.   / K  V( p5 B) O3 k
  5. //筛选不包含product的,并且对question_id去重  . g- _8 Z' l* f2 t8 G2 C6 i
  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″这个参数的记录  
    , Z  s6 x" r5 e0 h9 J& x
  2. SELECT * from test where FIND_IN_SET('1',area)  
    : A6 t6 X# V" u- \# Q  a& N
  3.   
    - g! d! A  ^* c4 ~- G8 `
  4. //查询btype字段中包含”15″这个参数的值  
    5 N5 a1 a6 D$ o. P' G1 O, y
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


, c+ S" a6 S: ?$ F

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

  1. $empire->fetch1("SQL语句")  
    ( Q2 l0 \- s4 \8 f1 ?1 }/ m
  2.    8 F' W5 U8 P, \& Q+ R7 P
  3. 使用范例:  $ j: l6 o: k/ h5 g% z
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  ' A5 U" x# `8 z1 S! ]
  5. echo"标题:".$r['title'];  & r  a/ i' g( n/ X
  6.    ' A2 q9 b  Y, m- E
  7. 4、统计SQL查询记录数函数:  - v# t/ Z: ]  _# }- K2 B
  8. $empire->num("SQL语句")  
    : x( u- \$ D# ]7 d( u
  9. $empire->num1($sql)  ) d/ s* E7 R& o- k2 a8 M
  10.    6 ~' {+ v1 C  A" ]
  11. 说明:  4 K* ]" k9 K. Z& }' s
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  2 o7 X3 b2 A3 X: Y( f4 M% t
  13.    
    4 O' t6 |! M: k+ @( N8 x
  14. 使用范例:  - x& Y6 |( s9 i2 ^
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  . v3 k  {! D0 F) O
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    , m6 G% T3 \) Y2 X" l& i+ l1 U
  2.    
    4 |7 b. k; f& d, n3 Y4 m, [
  3. 说明:  " r+ C  s; ]9 v& b3 T4 z
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  ' ]( g, Z1 Q# r8 H* G9 _
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  % o/ J$ `  [9 E  R' \
  6.    
    . Z7 N7 {/ v+ s3 R7 o1 D
  7. 使用范例:  $ W7 [% J& H) U
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  ! F: L8 s' l  F* Z
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    + y6 b7 }2 _+ Z5 r* h/ a2 c
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  5 l0 {" p2 Y5 n* J
  3. $lastid=$empire->lastid();  
    - h+ ?/ J. M9 F8 ^
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    ' M1 k, n; b+ a
  2.    % p" k! ]5 p3 d9 D
  3. 说明:  
    & n2 \9 M6 S) q% D. n
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  $ J+ |5 K8 ~8 T9 n6 B  M* m
  5.    ) O; \: E7 A4 F) Y, I6 L: G
  6. 使用范例:  
    , J% A% R+ x# y* e7 f0 _
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    5 z" w, o* |& \0 Y. \2 V
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    * x2 u$ [, }; z9 q( p
  2.    7 H  o) k" e5 |' e2 I
  3. 说明:  * F# b% a( N" f% Q' m" j, I6 S
  4. $sql为query执行SQL返回的结果。  
    7 _% y0 ]$ w, \
  5.    
    : w8 D4 g/ ]2 m: f! {
  6. 使用范例:  
    1 y0 a3 J8 W3 M! K. `2 N( X$ N
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  8 h: x' }5 z4 U
  8. $empire->free($sql);  
复制代码
" F' y; C$ l9 y4 H; x$ f3 _" T

5 R! j8 S; h5 m& z
2 E% a. @9 O' K, R$ W
% f& O# I- i. I- ]8 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:05 , Processed in 0.114433 second(s), 20 queries .

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