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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  : [& r! D, ]8 D# p' _
  2. define('EmpireCMSAdmin','1');  
    ; A5 @8 ~' l& x6 z; l) W/ u  N3 M
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    * |) ]. T6 N: j. N% Q
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  $ \6 D( [+ }3 K( J- M! |$ V
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    ' @  v1 B- z! k+ x; t% j3 l
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  5 D- r2 a/ j7 N: f2 {: q- d
  7. require(ECMS_PATH."e/class/com_functions.php");  " `5 K: V! r8 f  n. _0 j$ Q
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  9 C: t: J$ `  e9 @1 c& a3 t* L
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    ' [0 l& m+ ^% p; @
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    8 P" ^2 u# s* L0 `. b
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    3 p% K6 i% `" W, S! O5 \3 i9 X! L
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    * S7 o6 O% n& M' u
  13. $link=db_connect();  
    8 v4 y& z0 _/ Q9 C0 W8 N- A% v
  14. $empire=new mysqlquery();  1 u8 X% e4 Z* G" f# b
  15. $editor=1;  
    : s3 G( c; M! J& r$ o  ^
  16. //-------- 分页参数 --------  " v8 L7 M- e5 d3 z9 L" N$ K) Y! U
  17. $page=(int)$_GET['page'];  6 c+ e, |# v: s2 Z7 X& y% ]" D$ f
  18. $start=0;  . G9 Z; ]% x# P# M
  19. $line=30; //每页显示记录数  1 \+ i8 C# k# }: }
  20. $page_line=8; //每页显示分页链接数  5 X' L; w) I1 B
  21. $offset=$page*$line; //总偏移量  2 t. W6 ?; }, B' }- t
  22. //-------- 查询SQL --------  0 _6 W7 _0 X' ]/ a6 `* Z
  23. //取得信息总数  ) k" u! {+ ~& A9 C
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  7 x$ D" G2 k% X. A, C
  25. $num=$empire->gettotal($totalquery);  
    . l9 Q9 `" z7 H+ u6 `) A
  26. //select查询SQL  " w9 K  \2 A0 p+ j( t2 U$ Y5 J
  27. $query="select * from {$dbtbpre}release_money";  ( n: Y; p& D& v, P; n' T
  28. $query.=" order by id desc limit $offset,$line";  
    2 q# D" F1 L" \8 Z( v
  29. $sql=$empire->query($query);  
    + `: z2 O0 _" S0 a9 M# P& p# k: \
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  + A4 c, `6 Q3 ?# M" `& b
  31. ?>    w0 ^6 d  c- V. _
  32. <html>  3 P: E( @' u/ O' u" G/ P: x
  33. <head>  $ {+ a0 v0 l$ L+ v8 |/ W$ ?" P
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    7 B# x- [0 {- H6 v! Z$ u2 O5 j* X
  35.     <title>用户消费记录预览</title>  ! N0 @0 {8 U  i* V8 ]: ]2 @, m3 G
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    . o+ [' C9 x& ^) ^4 `
  37. </head>
    % o! O; I* b4 @( A) c  w
  38.     <body>  4 m/ i% v9 C# g, ~
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    8 I5 t6 p: {, y5 @
  40.             <tbody>  0 |+ h" R1 J0 c+ w5 D3 i
  41.                 <tr>   . o! N# w% P2 K( [8 l9 R2 S
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  / P0 t( D& v* h4 _3 C% M' w. K- r0 ]
  43.                 </tr>  
    3 u! S$ n( g  E: r
  44.             </tbody>  4 s: t$ J% k- K4 C' O/ O( Q% {
  45.         </table>  " w. z  `. U: K5 F- a
  46.         <form name="form1" method="get" action="?act=a">  
    5 W% l* C/ j1 {( t7 Q
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    4 f+ |7 o" n6 m: w' J; k7 ]8 E. ~, O
  48.             <tbody><tr>   4 d4 d- V5 |+ P% T! N1 c# ?
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
      I+ b5 U; S) a5 Y+ n2 H, p/ U( |
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    4 s1 G! s! t7 {/ o
  51.                 <input type="submit" name="Submit" value="搜索">  3 \' s' o. S$ Q) W7 _1 b, {, @
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    4 O/ g6 e: k5 A" \
  53.             </tr>  
    # N& u- s( B3 b  z( N4 p
  54.         </tbody>  
    3 c6 W% Q- j3 _
  55.     </table>  
    " \# m6 [4 N& E+ Y7 L4 p4 ^% L7 V) H
  56. </form>  : A" _& W# d2 Q( u; S& r* T5 q
  57. <table width="800" class="tableborder" cellpadding="3">    z- c* ]4 B  l% W) C! j
  58.     <tbody>  6 n' U/ j# y7 e
  59.       <tr class="header" height="30">   
    / C0 p) i2 p! N6 f4 E! s/ F
  60.         <td>ID</td>  
    . d, z  {- H. J& p2 r- C+ J; Z
  61.         <td>用户名/用户ID</td>  
    ' ?7 e: d+ b* O. n3 r2 w3 i
  62.         <td>信息</td>  
    . d$ k+ F4 I" U+ [& \7 E) d
  63.         <td>扣款</td>  , s+ X" i' c9 `) Y
  64.         <td>时间</td>  : u2 m9 Q" ~; j6 o0 \4 m: V
  65.     </tr>  " V2 B9 C5 x: d+ m/ s1 b6 Z
  66.     <?php  
    1 s8 @6 r2 B+ k0 ]
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  % O9 y2 j: R" u' J! u
  68.     {  
    ! O+ S! ~5 j4 h& s) t
  69.         ?>  
    9 U9 `2 I3 L2 O. o- \  J0 m9 b2 U
  70.         <tr height="30" bgcolor="#FFFFFF">  
    , Q' e$ d0 f! ]3 o% y1 I7 q
  71.           <td><?=$row['id']?></td>  - X8 Y) F5 \, u. L
  72.           <td><?=$row['userid']?></td>    O/ M2 d* L# t
  73.           <td><?=$row['infoid']?></td>  
    " h% K; R$ j- J- m4 c& F
  74.           <td><?=$row['money']?></td>  
    . K2 T: V2 [6 X0 i+ C: E/ T. j) p, Y6 {
  75.           <td><?=$row['time']?></td>  
    & u" b2 e, f7 _: Y
  76.       </tr>  % f: `  n! L' P+ K; g# h
  77.       <?php  ! B1 x' i& Z! w8 [! }
  78.   }  3 ]! `/ P* J4 [7 U
  79.   ?>  , `8 r; M  J) N- g! b, P$ _. \3 I
  80.     <tr bgcolor="#FFFFFF">  
    0 J# o8 _  X& Z0 O/ q: ~
  81.         <td colspan="5"><?=$listpage?></td>  , c" T. h0 L3 |" M4 E0 o$ h
  82.     </tr>  
    5 B( D0 O% E; t# f' y
  83. </table>
    7 n; L+ |  I" t, L. [5 u
  84. </body>  ) X- S2 j8 }9 h1 ]8 i5 h
  85. </html>  
    * V9 X9 {# l3 K1 j8 Q6 c$ q
  86. <?  
    3 l# p. Y4 H: V, e+ l9 U9 M
  87. db_close();  
    / z" O* x% N7 e4 b, m* Z. X
  88. $empire=null;  
    . e; n0 a# f' e9 T
  89. ?>  
复制代码
  1. <?php  2 y) J5 y. N) n5 o& p' `4 E
  2. include("./e/class/connect.php");   
    * b; v+ G6 {, f- e
  3.    
    ) w8 u1 }2 p# f) G
  4. //后端Back-End   
    5 q  e& x7 m! A' R$ s
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    - \5 j) W/ w8 }+ W: B' Y1 F& p0 {
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    4 v' f6 {+ v$ S/ q$ S, w) Q
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    1 [" a& t' k, n$ k- ~
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    0 |  o5 Y2 V* z3 d. Y% |
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    0 f( r9 w9 E8 v* Y9 V; b. M- V
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    1 v5 H# C8 }; x/ b. \! f
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    , d2 t% P: c/ r) D9 m* E
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    3 i8 j$ @" @% c! W- ]0 l
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    7 _6 d: e( |/ ?+ V
  14.     # N' i2 l' j! c7 W) C( Y
  15. //前端Front-End   
    9 N) E# ]) t  q2 N/ @2 W" \, c; ^4 }
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    . d, T' h; n6 k
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    1 _9 N% n3 S  W  p
  18. $userid   =getcvar('mluserid');    //会员ID    $ F* Y- w% n( X( k$ k
  19. $username =getcvar('mlusername');  //会员用户名  ( e- D7 u2 f, v
  20. echo $username.'<br/>';    ' l6 x. K2 x5 f& ?7 M3 D7 `
  21. ?>
复制代码

6 Z# k* ^1 K3 Y% b5 T: j0 b( N0 p/ {' T( p$ x) L! K
  1. <?php  * I& d: C5 {8 @2 U# E; F
  2. //会员信息  4 P7 J* V! W7 O4 `/ _
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  * w2 C2 m3 B* z# |
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  & {( o, K, M6 V0 L% ?, w
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  3 i( F! s! F$ p) c
  6. if($tmgetuserid)    //已登录  
    ; p3 M. B  i1 z  b  J0 w# K2 C6 Z
  7. {  $ A. H: m$ ?: {3 l5 n
  8. }else{//未登录  
    $ l' \! u) t; X  z/ d
  9. };  
    $ ]0 I5 d" h2 S  k4 t( g
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
- T- D. _& r4 ^- W' o: J6 i' G: M
  1. //修改  
    . d5 m* d4 g7 B! `% ?& K
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  " Z8 O: v+ g: Q4 Y
  3.   
    . Y$ \. g* ^1 h
  4. //插入  
    0 x* `$ j# K# q" _
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");    \7 ^  H. h$ }
  6.   7 s2 R# m4 u/ m; h# `
  7. //删除  
    / H) m$ n# |5 p) V% w0 u$ ^: `' ^
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    " O. E* n" s' `# |1 C
  9.   9 R* D4 O8 \+ U0 M. T
  10. //查询单条数据  
    $ }( `1 c0 [# G' ?1 S& t4 j! \
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  : U% _  o& a1 j, R+ C, X
  12.   , i  S# {/ [4 i2 M* U3 x1 x3 u: U
  13. //查询多条数据  
    1 [! y# W1 P+ e6 ?/ @$ `% u
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    1 c8 E% ^; f+ ~  [+ r+ \
  15. while($praise=$empire->fetch($sql)){  6 d% Y  Q( E2 [; E1 F
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    $ `. W7 k( O* Q4 Z$ G5 f! y0 z
  17.   if($res){  ; O* ?% \9 @3 N
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  # o7 ^; E# A9 D5 y
  19.   }  
    1 S2 G: {4 U5 \: p2 ?8 D1 r; u
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
& A3 {/ e4 \) Y: M+ L  o
  1. //筛选包含product的,并且对question_id去重  
    " u. d6 j4 p' K/ t, n: t! Q5 |# Q! x
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  7 j$ U+ K' ^# C0 B6 [
  3.   
    & P. v" P+ b4 y; P9 @0 D
  4.   8 U3 V+ y% c- f' G% F+ w$ V
  5. //筛选不包含product的,并且对question_id去重  
    6 [0 a1 K7 ]' R9 _& |, 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″这个参数的记录  * p# j& F! ]& v/ Q
  2. SELECT * from test where FIND_IN_SET('1',area)  ' z: t' J! s- p% r( f
  3.   
    2 D. y5 j6 L% j8 L% e
  4. //查询btype字段中包含”15″这个参数的值  3 H( A1 I# |$ f! _9 I1 U
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

3 r$ _# j/ v- _+ p6 j$ q

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

  1. $empire->fetch1("SQL语句")  8 h) H( s3 m* ~$ J5 a2 R
  2.    
    " ?4 D% L: n2 L" w+ ~
  3. 使用范例:  
    4 B6 w: x) o2 G
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    2 u! R. M: c/ C' ]+ j
  5. echo"标题:".$r['title'];  
    4 \+ d4 e8 C2 S5 {1 ]
  6.    8 l% x/ L9 k# A8 U0 z
  7. 4、统计SQL查询记录数函数:  2 d" C8 s1 S8 W& W6 m" K& T7 e5 G
  8. $empire->num("SQL语句")  " Y5 B( W. A* ?# Y7 @0 e& M
  9. $empire->num1($sql)    F( S6 L! C9 j0 G& L
  10.    
    ; S$ Q# y* L1 ~6 ?& Y" d1 x7 D5 u
  11. 说明:  : ~: S6 W  S# i. l6 d$ j
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  7 k. e% Z# w+ e( n! u
  13.    % J3 l0 J4 t" C- f" i7 w5 }# K
  14. 使用范例:  
    9 p, V, L$ n* R" Y
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  : W& j/ D7 ^: \+ n+ h' @% m+ c+ V
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  & M9 \! l% H' }% W  a
  2.    6 E; S' M" A, g
  3. 说明:  
    0 c( h4 y3 F/ o& f6 N# T
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  9 s- r5 ]. E& R/ V( W$ M% `" N5 t
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  9 K6 ]9 i8 y( z4 J' q, P6 ]5 I
  6.    
    4 V5 ~. J6 h5 x
  7. 使用范例:  
      z. I8 ?2 T+ E# V
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  , \, S9 C& P$ O
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    " o  T. @. d( d$ h
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  8 |( ~: Z2 |; m* ?
  3. $lastid=$empire->lastid();  
    7 w! N5 P* x+ I% l- _
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  6 a# {: X  s: B9 x
  2.    
    ' \" K" f5 }( o9 n. x5 [- N7 {5 F
  3. 说明:  
    , `9 c# q  d" U* l' d. }
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    - A0 g6 T  {$ L5 g$ v+ U( ?
  5.    - a* g* B6 ?+ W  ~
  6. 使用范例:  
    3 B8 [7 t3 `9 z3 n1 S7 b) ~
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    - X+ A& p+ v# a+ }% S
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    8 G0 E. r) A* K0 n" F
  2.    8 U) l# x5 w1 i" Z! f8 B
  3. 说明:  , \' p4 P# P: B8 ]8 ?# |
  4. $sql为query执行SQL返回的结果。  
    ; y. M7 S% S* _3 ?1 B$ U
  5.    * R- |6 ~8 s5 Q/ L% Q5 h! u
  6. 使用范例:  & r+ T, b$ G+ d6 G5 X+ a6 q
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  + N  u1 Y" I! j
  8. $empire->free($sql);  
复制代码
5 P! n4 I' h2 r, F6 L7 ~4 y
8 Y% J0 s* n) a# O5 B1 w' l

4 X9 ?& }& i  F7 J" x
) P6 l1 [1 R- F. p  f7 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 22:04 , Processed in 0.058513 second(s), 21 queries .

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