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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    " b8 o3 i0 f: Y6 O8 w3 r2 O
  2. define('EmpireCMSAdmin','1');  
    " z8 Z4 _1 U, T# M/ `
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  9 a9 u  G" A% o8 ?" t6 A! i& m
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    - {2 o" U' B( q) C2 M7 H
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  - F$ j2 [/ |$ \) m$ J' E
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  " n8 l& X% @% j6 R
  7. require(ECMS_PATH."e/class/com_functions.php");  
      E7 Z9 ?" F' d. r7 a+ N+ [" v
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    / }; P6 X) R4 k  s, m$ R9 {, k
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    ) A9 J+ T; D4 r% e# N
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  2 L, m8 Q% _, j* U% H
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  1 c2 ^( f% @3 R1 r. q6 S5 ~2 q6 a
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  + ~; x  R5 T9 r5 w
  13. $link=db_connect();  6 I' u, h3 S9 Z" T! K- X
  14. $empire=new mysqlquery();  
    7 H" `, i' d4 L# U* ~9 U- k9 U
  15. $editor=1;  $ f8 h# N: T; V, S  D) A; R5 f: Z% D% x; e
  16. //-------- 分页参数 --------  , v. {# e  C0 F  |4 Q7 Y
  17. $page=(int)$_GET['page'];  8 o* T' c5 ]# N5 D8 T
  18. $start=0;  : S( \' f4 M% d2 \7 a; r* J4 `
  19. $line=30; //每页显示记录数  - }6 E2 b5 D3 l
  20. $page_line=8; //每页显示分页链接数  
    1 I# V7 E- B, ]
  21. $offset=$page*$line; //总偏移量  $ n: u2 \7 H, _: i
  22. //-------- 查询SQL --------  ' G5 |) O1 Q1 }; ~7 I4 r
  23. //取得信息总数  
    # a4 D7 U& s1 Z( M$ L/ T
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  4 d9 e# l  S! {) h" Y, ]! a
  25. $num=$empire->gettotal($totalquery);  
    : }. x3 d, |, |* a
  26. //select查询SQL  
    9 R; c' r8 r8 }2 Y5 C' E$ E; n
  27. $query="select * from {$dbtbpre}release_money";  ( Y5 G3 e' O- D- \
  28. $query.=" order by id desc limit $offset,$line";  . ~% ~% ~; C) Y0 }6 H
  29. $sql=$empire->query($query);  
    ; j- b0 y- S+ Z& {4 l) K% r& f
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  / F- z* x  ]. P) C
  31. ?>  
    % b8 ~3 U' O& O8 p8 k
  32. <html>  9 F( X: ~$ D, \! t1 {
  33. <head>  
    2 m3 J+ R0 N6 J0 ~0 N
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  ; L& b$ n; D& \! N% N3 d
  35.     <title>用户消费记录预览</title>  ' p- z: [; W( b5 N
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  / R, `( x4 M. c% q# C2 J# X
  37. </head>
    : n+ ?, V! R2 M) o) x0 x* C# R" O
  38.     <body>  / K3 {! c2 E( ^+ f9 j) j0 y
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    / f% z( C0 o% ?. d& |$ G8 ]. m
  40.             <tbody>  1 I& U" M; C! k
  41.                 <tr>   
    + b3 w1 @- {9 X$ M; Q1 x' j
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  + u. E4 d) t* q+ f4 v8 B
  43.                 </tr>  
    7 `; F. p+ V6 ~5 Q, Z
  44.             </tbody>  6 D& \3 u: S5 C" m2 ]" `
  45.         </table>  
    8 M9 y* y9 _1 u3 p
  46.         <form name="form1" method="get" action="?act=a">  
    " R% S& O' P( k( w& e: ?% l
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    * p! g1 g: x% S
  48.             <tbody><tr>   
    % L: t0 m/ i- @' [' B" J
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   . n6 u5 k  r: J. z% c
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    6 ]# R; J( ?3 {' u
  51.                 <input type="submit" name="Submit" value="搜索">  
    8 H* c1 e" S; Y9 q3 u
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    $ Q; ^- @% X" J
  53.             </tr>  
    & S% m4 k5 \7 y: R2 `. p( x
  54.         </tbody>  2 F& R9 i, K  W# Z! v
  55.     </table>  0 W0 S6 x6 F7 q; ?" f; ^% c
  56. </form>  2 ^! Z7 O6 {9 q- P5 K6 W. L
  57. <table width="800" class="tableborder" cellpadding="3">  
    8 [  a% G; O# ?# _  j
  58.     <tbody>  
    8 t8 _; Z& N5 _  W& r9 O
  59.       <tr class="header" height="30">   
    3 |* F( r& A0 v4 x- l
  60.         <td>ID</td>  ) w) V) J, m6 S2 M$ o. r0 o" g1 X7 O
  61.         <td>用户名/用户ID</td>  
    + z# \* h* D0 R4 n2 v' U
  62.         <td>信息</td>  
      n% ~! n- c, F
  63.         <td>扣款</td>  0 W" t3 y2 q/ Y  f8 o
  64.         <td>时间</td>  - ~! h, o9 B7 `" ?
  65.     </tr>  5 w7 l3 A$ j3 N$ y
  66.     <?php  
    3 W' M. A! z/ R3 {
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    ' e7 a+ F: e+ k, G3 ?$ l
  68.     {  
    & Q: p7 F4 ]  w8 H* I7 R
  69.         ?>  
    6 C! i+ m' i( `/ C
  70.         <tr height="30" bgcolor="#FFFFFF">  
    8 a' V9 u8 ]  x1 e: }
  71.           <td><?=$row['id']?></td>  % F* S8 i6 I# X+ q* R
  72.           <td><?=$row['userid']?></td>  0 O# V( k3 x; e
  73.           <td><?=$row['infoid']?></td>  
    + M7 `* D' _! R$ y  N
  74.           <td><?=$row['money']?></td>  4 R. P1 ~/ ?. ~6 z% `
  75.           <td><?=$row['time']?></td>  1 S- a( Z8 t% d& Y' x
  76.       </tr>  
    / U3 ~2 f2 Y$ t3 ]
  77.       <?php  & p. E+ O: F* O: m1 A% c* i
  78.   }    V% Y3 {" k9 J. _2 n$ G0 m! X
  79.   ?>  ) m7 p4 O. L3 U
  80.     <tr bgcolor="#FFFFFF">  
    + N" T. ^8 L# H5 }/ g
  81.         <td colspan="5"><?=$listpage?></td>  2 `( `# x) s# ?  _" m3 l
  82.     </tr>  $ t- Z) V4 e  t2 l
  83. </table>6 j) N! ~+ Z' m! F( {
  84. </body>  
    & E+ ~& P, ]7 _1 w/ n; R
  85. </html>  
    $ Z2 {/ U: I. G  v3 _+ e) s
  86. <?  " z- Q' X+ R$ [2 J* n; e4 r3 W8 n
  87. db_close();  
    5 I7 Q6 Y! \* e7 ?. }
  88. $empire=null;  
    ! M  n$ c$ p  {' R1 H# x5 @
  89. ?>  
复制代码
  1. <?php  
    3 j# O- X4 [0 J
  2. include("./e/class/connect.php");   
    8 t) O6 h5 T' I, o& u) V5 D
  3.     ; n% C; R+ N" ^" a
  4. //后端Back-End    : X7 R% t8 C9 m% a
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    1 i8 b! X9 e! W+ w, z! q
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    ! b% Q( h+ U( c& K. c* t
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    * l; E/ Z! Y5 t* v+ W& r
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    ! {+ u1 y' l7 N+ {5 F: A" Q) R
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    4 U0 ?& _, Q* V( y7 z3 v
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    9 k$ c0 O# w) I0 d% X7 `  d3 p
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    ' {( o  t1 r" M% S  _, _  T- @
  12. $loginusername      = getcvar('loginusername',1);     //用户名    * t1 i, q( l& L9 L! T* a
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳      H8 s$ S1 e2 D/ F+ }
  14.    
    ! ?% M$ X% y: t. l) y2 a
  15. //前端Front-End   
    ( j$ }7 K2 V' D; @5 b- }. W. x
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    6 T9 h2 W0 k2 d5 H$ }* O3 t
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    / L5 ]7 k9 h9 W1 J
  18. $userid   =getcvar('mluserid');    //会员ID    # o+ p% v/ n( M4 {
  19. $username =getcvar('mlusername');  //会员用户名  
    9 O7 E8 ~  H% D- e5 g, r" V
  20. echo $username.'<br/>';   
    " X- p* b" i3 u5 F  Y
  21. ?>
复制代码

2 y4 C- t9 x( k) m9 P5 d
- G5 M& ^% L. C& l5 |
  1. <?php  
    + v! D/ F. O6 w/ {9 l/ G/ F
  2. //会员信息  ; _: h: ?& b, |4 G% }2 O- i# J
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    7 h6 a* `& H- M8 F9 U* q* B  K1 N
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  ' ?/ w' w1 Y3 u
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  ' u9 U1 ?- t3 g' V# Q) @
  6. if($tmgetuserid)    //已登录  
    % m9 w$ U/ `4 {% @6 t, M- V
  7. {  0 M$ E  Z" w4 W3 u) u" B7 a
  8. }else{//未登录  
    . `) T0 X* [/ z, T
  9. };  
    2 u$ F6 d) w$ h! c0 t6 T
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
+ h5 E, q7 S) u' |1 ]6 X3 d
  1. //修改  : ]) p0 m0 ]% J$ F+ \/ Y
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    / U. D7 N# I* L, W' m5 H
  3.   2 m6 p$ z) I) v/ z) d
  4. //插入  
    # K. @' d3 m+ z- c
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    / C. j/ w7 s. _7 {. b2 S* f
  6.   / C! Z- N6 i4 u/ Y  H' \# x' L
  7. //删除  
    / H' c5 v8 _9 A
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  ! k0 A; o% j9 d* J2 _3 L
  9.   ' @: ?5 @' a/ c  v7 ?/ K8 N
  10. //查询单条数据  
    2 U( {; @2 W9 U* g
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  % K+ s, w% m) W4 P- V* c
  12.   2 I' Q3 g! e% A. j
  13. //查询多条数据  + d# {. y8 n3 }- N0 _  y. X5 q$ F
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  - ]  C. a' G1 C
  15. while($praise=$empire->fetch($sql)){  
    9 s( o! c. x6 O" u4 n
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
      m7 k. D7 Z: N) t
  17.   if($res){  ! o$ j3 P% D; s& x1 \
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  0 j# C! V5 W" {3 o0 P7 U) f
  19.   }  $ P- `. Q  E' a8 T5 V- E$ p
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
# V3 R# j$ a$ P8 V4 V2 F) @& t
  1. //筛选包含product的,并且对question_id去重  
    5 ~1 e3 B3 h# R& U9 y
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  + P) d4 j) V9 S* |" z$ J
  3.   8 _8 }" Y: B5 ?" f8 \7 g
  4.   ' P% Y8 T; [* l$ a
  5. //筛选不包含product的,并且对question_id去重  ) f4 F' F+ }1 L  O4 K9 g5 E1 M
  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″这个参数的记录  
    ! I4 P) O  d- ?( B
  2. SELECT * from test where FIND_IN_SET('1',area)  
    1 _5 R, _/ n6 D7 m% r
  3.   
    ; E" t/ c5 t6 e; C) s
  4. //查询btype字段中包含”15″这个参数的值  # J* d7 X7 j# d
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

$ ]" R8 D% E  m6 Q: @6 ]+ k" U) x

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

  1. $empire->fetch1("SQL语句")  
    * q% y% o8 k0 S; {  z% f  |
  2.    
    9 j# a/ i! {  g7 }2 U
  3. 使用范例:  
    ) Y$ `/ Y/ z2 U5 Y* E) m
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    ( Z3 N: ?+ r' [6 w9 g6 j8 x
  5. echo"标题:".$r['title'];  
    ! [0 Q6 m- O3 v0 n2 g9 T! f
  6.    
    4 Y8 Q- \: p3 U( N2 q
  7. 4、统计SQL查询记录数函数:  
    + I; u- {* Y! D% p' O
  8. $empire->num("SQL语句")  * f3 \' ~2 P1 ]+ y- l# X
  9. $empire->num1($sql)  
    7 W  y( I$ N" H8 ^" ?3 E
  10.    
    7 w+ Q$ u" N. k: O# M$ _( D
  11. 说明:  
    # ~( G/ y) |8 G. G4 j9 E# [
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  " ]" u9 j( j2 e6 D
  13.    2 b* R) Q. S+ C2 _$ G5 S
  14. 使用范例:  
    8 Q3 [2 C" A7 U
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  6 D9 i: }* B) Q! b  K' g0 Z& w/ J% j
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  . h7 I1 Y+ }" R/ l
  2.    8 k5 F" e- f+ v/ @. {' M
  3. 说明:  
    $ ?+ m' Y) F, h3 {; H  u  ~1 J
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    - h  O1 c( t4 P8 y: k
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    & L1 A- M: t# V6 d  u  p0 ?# k
  6.    
    * p" D6 @+ r5 H, w9 T, }* G& K
  7. 使用范例:  3 I% X7 q1 s! G, u+ x, g
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  * w, o( N  h/ J9 x' y0 J: C- R6 _
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  3 I( e1 j& X  i! _( M% [* c
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  : T% Z2 s2 E% a7 u! `
  3. $lastid=$empire->lastid();  1 J( O; }- Z( G  y; O
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    ! [% n2 k  c6 r9 |
  2.    
    3 `' N* z/ S* q9 y2 J# y
  3. 说明:  / R# g/ @4 H! a, `# u
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  - ~' h. ?: W6 Q3 w" Y4 \
  5.    ! H+ ^" s5 C% |: g3 ^
  6. 使用范例:  & C1 y- Y+ i1 ^( B2 y( G, T
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    $ A1 O' {/ N3 |% Y
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    9 O1 K9 P' K7 n
  2.    
    & R2 Q' m) l% Y* D# _
  3. 说明:  
    % b2 _9 E/ z8 e2 q# l- y: D5 n
  4. $sql为query执行SQL返回的结果。  9 \, B  W$ R. z6 J* u) A' P+ k6 C
  5.    
    # ~3 t2 R( P& h
  6. 使用范例:  
      `% z. s# x9 A( q4 O7 D8 b: p
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  5 F4 T* r  m" I: B$ L# e
  8. $empire->free($sql);  
复制代码
1 F4 {# t; N; \

- C9 U9 ]* [7 W+ d) s7 R; a
! H: r. K9 f1 G  R' P. j
( J6 [: V: ~. }6 J3 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 02:11 , Processed in 0.125663 second(s), 19 queries .

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