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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    & x9 y3 X" `+ k7 F, b$ O
  2. define('EmpireCMSAdmin','1');  ( j  a# e1 ?* k* P5 s; N* G6 a
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  , s5 I* ^  K2 K
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  2 _* F% I& r5 p' r
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  + s/ I% @1 j  y% P  |: B
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  4 ~* i/ B" K5 {) H! B% \% P
  7. require(ECMS_PATH."e/class/com_functions.php");  2 Y- `! I, L7 \- C" g1 U% i7 ^
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  2 V, p+ W9 X9 b9 b# {
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    1 ~8 s0 J3 |, H: c4 k
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  ; ~5 [, X. U3 n
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  0 P! N. n7 _# i: V
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  $ C, H' [2 x5 {- N. x- [/ n
  13. $link=db_connect();  . C! ~. {9 e+ q$ X) y
  14. $empire=new mysqlquery();  % t7 V; q8 R  V8 }) A& r4 g
  15. $editor=1;  7 R) q7 x' S0 |: f) d
  16. //-------- 分页参数 --------  . T+ s, J0 ?: q  N- k0 v. n
  17. $page=(int)$_GET['page'];  
    / N9 _+ k$ s0 j; r6 a6 F
  18. $start=0;  
    7 p$ h6 E# W0 ~& d7 C; v& C
  19. $line=30; //每页显示记录数  
    3 L! P- v3 e/ f( O: j7 B
  20. $page_line=8; //每页显示分页链接数  ) l9 I) Y$ \% ^9 Y  c: G
  21. $offset=$page*$line; //总偏移量  . Q& U8 O$ M9 ]$ F  ^: q
  22. //-------- 查询SQL --------  + B/ A8 o  |# R
  23. //取得信息总数  
    & n$ S& |% _3 [1 L5 Z. g- j
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  4 m( b% Z1 O1 u$ m7 B
  25. $num=$empire->gettotal($totalquery);  
    : m7 f5 t4 Q5 y( V: h0 q! O
  26. //select查询SQL  
    ( P1 Z. H# [9 e7 n5 o0 S; Z1 `" z; ]
  27. $query="select * from {$dbtbpre}release_money";  : v! k1 |: a& l* Q
  28. $query.=" order by id desc limit $offset,$line";  
    3 O8 L0 G4 b1 g) G% J
  29. $sql=$empire->query($query);  
    & X, G6 `, |( {
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  ' K* p8 O% Z" `$ }" C$ j  M9 \' o* o
  31. ?>  , \, P5 ]% z" k  u3 Y/ @* r
  32. <html>  
    1 K, c# t+ P0 M7 q1 K5 e" L
  33. <head>    _/ ~" N6 d' M" S2 U
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    7 h+ T/ x( N( Q- d/ I3 G" C
  35.     <title>用户消费记录预览</title>  
    % j  x( y0 N# \' J* E( O9 n, [2 H
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  $ A: E" \1 W3 X& P/ z4 D* f: v
  37. </head>, }: R9 i- o0 H  t
  38.     <body>  0 ^/ |' }% F+ K7 T3 l  F0 Z+ o' R
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  1 o0 ~/ U5 W  J3 }9 Q: U
  40.             <tbody>  
    ( A& G: C! \1 J
  41.                 <tr>   ; U# X' U2 W, b$ W) g' v5 A
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    : `; P% E* P6 W0 N5 m
  43.                 </tr>  : U; I# g" t+ _. X: @
  44.             </tbody>  
    - O* ]  X1 t+ g7 O2 @
  45.         </table>  
    ( O; V; O# w) v% x3 A9 q
  46.         <form name="form1" method="get" action="?act=a">  - d' t* b( E! T) S
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    3 }! d3 @; m! w& `  g/ l/ m
  48.             <tbody><tr>   
    ' D) ?+ l0 a. v
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    ; a4 N% h" K- Y* y) t
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  9 q" _3 X' i1 z% K$ J1 {
  51.                 <input type="submit" name="Submit" value="搜索">  
    $ g) l2 \* m2 e1 D
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
      P: m9 |8 p8 Z. s% m1 p% \" d2 k6 Y
  53.             </tr>  
    " K# V5 m" `9 t) S# F" e0 j8 @
  54.         </tbody>  - P) g& X* v0 d. [; A
  55.     </table>  
    4 t% f5 l! b5 I; a: \
  56. </form>    Y0 E$ @  t: z  h8 \
  57. <table width="800" class="tableborder" cellpadding="3">  
    - z7 p# b7 j' [) S6 l
  58.     <tbody>  8 y5 T% s* n, v9 X; k3 P; y/ V
  59.       <tr class="header" height="30">   0 E: T9 q8 v6 j
  60.         <td>ID</td>  
    & t4 Y9 t* N! p( l) k. ]. E1 c& Q
  61.         <td>用户名/用户ID</td>  ' |0 V5 I1 z! N3 e
  62.         <td>信息</td>  3 N% G( h- h* o* p& D; P
  63.         <td>扣款</td>  
    - W4 H- A& P; T5 ]8 k
  64.         <td>时间</td>  6 E3 @8 p, {* ]5 w+ x5 R$ u1 {
  65.     </tr>  + l, [( J6 a& d& r: E: a7 [/ b
  66.     <?php  6 y, c9 ]5 s% c; o- t
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  - y4 N) @; ?+ l# }( A' g/ m* E
  68.     {  
    9 N, j2 L, e4 I, n5 t+ y( G+ a
  69.         ?>  
    % \3 G$ g2 p3 Z" B; X& V
  70.         <tr height="30" bgcolor="#FFFFFF">  4 r& s8 Y( q& u: X, [! S: B
  71.           <td><?=$row['id']?></td>  
    ' c7 f, U: b+ M$ e7 z
  72.           <td><?=$row['userid']?></td>  
      A- C& I' {4 W: l- {
  73.           <td><?=$row['infoid']?></td>  3 ?) O: T0 v* F
  74.           <td><?=$row['money']?></td>    T: m9 m3 Z# M
  75.           <td><?=$row['time']?></td>  . N9 M( F- H& q* A1 e& ~
  76.       </tr>  
      A8 j7 Q1 M7 T1 [7 q/ w1 V0 ]
  77.       <?php  
    % K' K/ J" K+ A$ t2 p5 |
  78.   }  0 s  Y% V- S2 E( c2 H: u  r
  79.   ?>  0 S/ U5 c6 ]# L% Y" d! T
  80.     <tr bgcolor="#FFFFFF">  
    . @$ F9 F. O0 x2 H
  81.         <td colspan="5"><?=$listpage?></td>  . h. D! F$ R( E, d  D
  82.     </tr>  , C3 Z# N# K0 W& K
  83. </table>
    + m/ E. |& o. _( j; T, f0 J
  84. </body>  
    9 d& d/ ]! X1 z0 n  p
  85. </html>  9 j4 D+ U/ W1 x% i
  86. <?  
    ) o6 ^# z4 ]/ ]! E. `( ~
  87. db_close();  . R, J7 E2 i# }8 W$ {
  88. $empire=null;  , ?5 D3 E0 a: G1 G
  89. ?>  
复制代码
  1. <?php  / v9 }' X$ y4 r
  2. include("./e/class/connect.php");   
    $ C' t. N0 L9 c* ~
  3.    
    . L8 _7 S0 J2 U1 X
  4. //后端Back-End   
    1 I* q% `% C0 E7 D
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ! g$ e7 v) R& v4 O6 {8 z2 s2 T* b
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    : [/ A( {( V4 r$ X8 ]! c( q9 a
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    , e/ @" D; W) W4 G& z6 }' A4 n
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    4 [# P: F. G0 @3 e- b0 X
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    6 \9 ]6 U& S3 A
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    * _2 A" i9 e1 c. O& x: W* H0 z
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    ) a! j6 [9 n  E* h
  12. $loginusername      = getcvar('loginusername',1);     //用户名    ' M' h: P% u0 ], \' p$ ~# D8 q
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    : d3 x/ N( c, P1 t& M* s
  14.     0 b1 @6 m) M3 z0 z% X3 y& i/ U/ y
  15. //前端Front-End   
    & N9 W& s$ a2 G/ d! j2 D( J5 D
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    ! {. i  V# h2 A- G- O
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    $ c3 \5 X, W8 \" w
  18. $userid   =getcvar('mluserid');    //会员ID    + K' [# y) m. b: J  L% v" @, Q5 \
  19. $username =getcvar('mlusername');  //会员用户名  
    , |5 q9 i2 B4 E
  20. echo $username.'<br/>';   
    0 X/ b( J2 ], [/ Y
  21. ?>
复制代码
4 e' A0 x' @% V, G& l

4 Q. r9 G4 F$ S1 I6 V, t
  1. <?php  
    ' K6 s! Z# N' a2 c3 S5 R
  2. //会员信息  / K* u5 d: j7 p3 N  [8 K0 x" U8 [
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    - H- r" n& e, d8 I6 j8 U; d, R! i
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  8 s, m. X# q: s4 G& L0 t' ^" o
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    * f3 E5 c" |/ e, Q
  6. if($tmgetuserid)    //已登录  2 J1 r& l' h0 F( n) v
  7. {  2 o3 H$ e6 [9 |; ^
  8. }else{//未登录  1 z  M+ ~/ S. ~- W# a
  9. };  5 D* j( s3 _+ S" _: o; k
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
; ~9 g; G% M8 M/ m
  1. //修改  
    4 F1 x, |+ q" M2 _
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  ) O: \2 y# K& \' E& c7 m9 p
  3.   
    , X9 Z; e+ B& X+ z
  4. //插入  
    $ X" p! ]5 n6 a( n- _" g5 c; b9 t" C
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    9 Z' P0 y. `  `1 A  F
  6.   
    5 j& G/ f: }9 @2 Y
  7. //删除  
    $ F& a: ]3 K* i% S1 _2 A8 \- H
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
      V4 S( {; ~7 B3 @! y2 S
  9.   
      g. s9 l' n* s$ ^9 ^/ u" r' y
  10. //查询单条数据  
    0 `6 I. @5 i: _0 O: d7 I( X( U6 h
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
      k% }% e# T  |5 l1 Z" q! g
  12.     \3 T. P, T; M5 W/ ~
  13. //查询多条数据  * s) p3 Z9 l! p
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    . y" v# r( s4 J3 a9 ?' `
  15. while($praise=$empire->fetch($sql)){  5 |' {. n9 o# p9 Z4 q
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    ( t6 Q+ @, w# u8 h5 I" q
  17.   if($res){  ; P1 ^* P! O, @7 d/ @5 P
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    ( z$ ^( t6 y5 ^# h
  19.   }  
    " O2 z1 X" l% ?( A; Y7 f2 L3 A
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
4 N4 ^+ |0 O. P' R2 ?) u+ T
  1. //筛选包含product的,并且对question_id去重  0 c6 |4 W8 ?+ `, o1 \. U% c* t
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    ( x. ]' l; Z5 y) _) D' Q% S, r# G9 I
  3.   " s" Z9 M3 I1 |! u) f5 I, o, d& j5 z
  4.   + y/ U, R  u' `+ h: l
  5. //筛选不包含product的,并且对question_id去重  
    5 r! y# D. i* q8 x2 i) g! j3 J) g) 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″这个参数的记录  
    + e, \4 G$ v& ^% G1 q1 F
  2. SELECT * from test where FIND_IN_SET('1',area)  4 s+ ^9 O# N8 E
  3.   . d7 Y3 M+ v. g+ ^
  4. //查询btype字段中包含”15″这个参数的值  
    % T8 i2 s. Q7 T2 p+ w" X2 |8 G
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

4 w% h- v. Q% E: x  h4 B

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

  1. $empire->fetch1("SQL语句")  2 W, M/ n! _1 w0 J
  2.    $ B3 G% h6 V/ p1 N/ F2 m3 z
  3. 使用范例:  : n8 X$ r* p  [5 `% ^0 P
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    , @+ c* N* w! V$ D
  5. echo"标题:".$r['title'];  - L  N  Z% |! P# ~4 r2 h
  6.    
    $ }$ l+ v5 c/ b  j
  7. 4、统计SQL查询记录数函数:  5 b/ F/ z5 |/ z" v4 D; f( j
  8. $empire->num("SQL语句")  
    5 M& _3 |( Z8 x9 l% l0 {1 Y* H
  9. $empire->num1($sql)  
    6 b" N- _9 P7 P3 o, C- A
  10.    7 Y+ \! W. F& a- r3 j$ P
  11. 说明:  , u7 k7 J# m8 ]8 h7 A, I$ l# h
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  3 W9 d4 Y" \. ]- G6 m& E
  13.    
    + n5 ?# F" L4 l$ Q: ^  h2 S8 W
  14. 使用范例:  ! y; J) g- ~7 k4 w: S) _: ?: |+ b
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    2 r# ^; h: _% Q' R& u, o! O" b
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    + i: J& P5 S/ I. y4 p
  2.    / m8 P3 u% q% }; n$ i& {9 A  B
  3. 说明:  3 V  q: O' C& @% s1 v+ d
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  - m# b( Z0 z2 V- v) m8 J+ ?
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    + a( V1 O+ |5 Q4 Q* n
  6.    
    " A4 K7 v) y5 E& x! p- f% }6 H
  7. 使用范例:  ; |- Z9 l1 L( j/ X
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    ) Y% v# |. y$ y8 W
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  9 w' v' ]2 D4 l
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    - q6 L' t) Y/ t3 @/ B5 _. J
  3. $lastid=$empire->lastid();  : p* T: z( h) _; N) Q) V
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    6 i! A# A& [# P% k
  2.    
    2 M5 L$ z8 `; r( N; ]7 D
  3. 说明:  
    4 q0 u6 ]( Y& i; H, c
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
      @5 h( O$ [' m  a3 L' J0 ~
  5.    ! K  M9 _: U2 ^  v- c
  6. 使用范例:  
    8 W8 X8 G6 ^& B, b( d, t& N2 T
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    4 r, x6 ~) l; ]" O" j/ r
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  1 \+ u. H! R; P/ E7 r% \
  2.    5 @/ }# g" E4 f
  3. 说明:  & I7 E3 M9 t7 w% ^5 v
  4. $sql为query执行SQL返回的结果。  
    ) P& D* e: v0 H1 ?+ f" c- m5 J
  5.    . a5 @6 I* |2 h
  6. 使用范例:  
    0 A( B6 o8 ?, P& _9 p4 Y( E
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    # `/ e/ e8 v: J9 s8 X9 T+ L5 {1 J
  8. $empire->free($sql);  
复制代码
' l6 `6 g. U' U5 s7 x
# J& g) o, f' Y1 w# t

7 K$ v' B+ s0 l% [9 Q* `0 ?
% i6 M3 ~. w' Q; Z) r4 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:28 , Processed in 0.117565 second(s), 19 queries .

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