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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  3 L8 u% `) J7 k0 T" m9 t
  2. define('EmpireCMSAdmin','1');  1 O+ q, ?) w9 k& E' q$ b& ^
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  $ i% A& B! k/ t& E" r0 W+ W
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
      f- s8 D/ {' Q1 B
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  # @2 j0 @7 R/ c$ f4 B9 y9 l
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  5 Y) ~0 r0 d1 L  w* I8 G
  7. require(ECMS_PATH."e/class/com_functions.php");    ]  _1 }8 ^) a$ {- S4 Y0 }
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  % o9 `) |$ j: C, }
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    1 S! y7 @3 H' W* R
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  ' k8 U: s2 l( Z
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    9 q# V" P7 m: q3 k% e0 g
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    + A+ X3 N6 d. y- z& h
  13. $link=db_connect();  0 S! @: ^, m: i, \+ ]( u; M
  14. $empire=new mysqlquery();  
    ( v- ?! T, b5 Y9 a
  15. $editor=1;  
    & x) C) i- V) a. s' M* }$ Q) u
  16. //-------- 分页参数 --------  
    9 S) `0 S: _0 N
  17. $page=(int)$_GET['page'];  
    8 `1 g" V& i" i) T2 e1 O/ e2 \
  18. $start=0;  
    . Q1 ?7 U4 t: g$ [
  19. $line=30; //每页显示记录数  % a" q' L! w  K* I, N
  20. $page_line=8; //每页显示分页链接数  
    7 ], E( L% D$ \* ^8 S" m& ?( ]$ a
  21. $offset=$page*$line; //总偏移量  
    ; I/ T% N6 y: P- v1 B
  22. //-------- 查询SQL --------  8 v# r. j/ m) L0 I! u  y
  23. //取得信息总数  ' }0 b$ _4 l' e4 R0 M, I
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    ( S5 h5 G, H, v& |, V; \
  25. $num=$empire->gettotal($totalquery);  ( i) t/ J; s) E+ C% d; @2 J* c
  26. //select查询SQL  
    5 j& c: l  A  e; u" j% a4 e
  27. $query="select * from {$dbtbpre}release_money";  
    5 c, u0 U, e2 p& b
  28. $query.=" order by id desc limit $offset,$line";  , g5 J' d5 x! R4 e- i2 H! u" P5 a7 T
  29. $sql=$empire->query($query);  5 Q9 H, o1 N1 n: c
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航    I/ m+ E% O) x* b( [- P4 G4 Y
  31. ?>  
    ) u' X5 t: m1 ]7 a3 u2 G  |: y8 c8 ^
  32. <html>    J) r* @9 j' a; e% k; T
  33. <head>  
    / x% C/ R& r! M
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    ' |3 |& o( U1 b7 u" U/ x
  35.     <title>用户消费记录预览</title>  ; y, Q) z, D2 v/ _+ O
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  , j" H3 V7 ]- Y% B
  37. </head>7 @/ x& U) y. `0 o
  38.     <body>  7 v1 \: E9 p, w4 i3 k
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  ! i: M+ ?+ t7 v9 M: o. R
  40.             <tbody>  
      L0 Y! S/ t9 c- E: k2 X
  41.                 <tr>   * g! s3 W9 U1 w9 u; Q
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ; ~1 j+ v) N5 g1 v# E  W6 d
  43.                 </tr>  - h, i; \, @' H, l6 B7 Z1 x
  44.             </tbody>  + C, N% ]0 ]2 S: P! @( f5 m
  45.         </table>  
    ) o" h3 Y( R( k2 P& u, q; y$ F
  46.         <form name="form1" method="get" action="?act=a">  - I9 l7 K0 N9 l. f! P3 ~# A
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    * S  a# U/ U" \
  48.             <tbody><tr>   3 n% D2 R' r( _8 ]+ f/ z
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   2 i+ q; G) h% S" |
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  6 S4 z$ x4 G1 C
  51.                 <input type="submit" name="Submit" value="搜索">  
    ( a1 a( l  B, j4 L
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  ( ]. q1 c  S) Q( F3 J
  53.             </tr>  
    - R. Z7 p, }- H) g' d
  54.         </tbody>  , p- F# y3 p) [% f. X
  55.     </table>  
    5 ?5 {: `- e; v: M
  56. </form>  
    8 y, E$ U* |6 F0 b
  57. <table width="800" class="tableborder" cellpadding="3">  
    , Z9 L6 G& y* {; w. B6 B' y9 x
  58.     <tbody>  
    " B6 r8 c( t7 [! ?
  59.       <tr class="header" height="30">   , m) J0 z2 k6 ]( o1 M% o% a/ i
  60.         <td>ID</td>  
      _1 n$ Q& L8 ?) n$ |
  61.         <td>用户名/用户ID</td>  
    7 l4 j" \6 y8 M! F5 A0 }
  62.         <td>信息</td>  ' W; C) c4 x1 {) D' N  ~1 e
  63.         <td>扣款</td>  1 n& J" Y% b5 W+ t7 Z# w. W' T
  64.         <td>时间</td>  3 a, V. y1 u2 B1 `. Z, R% Z4 V
  65.     </tr>  2 ?0 u- U3 I$ n1 p) D0 K7 M
  66.     <?php  7 m4 A8 }7 b7 R% i/ x
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  9 X# j) y- V0 n" |+ U  c) n! ^
  68.     {  , K2 d1 Z" F7 f& }: \
  69.         ?>  
    0 j$ ^. e+ G3 @. W: H; u7 S
  70.         <tr height="30" bgcolor="#FFFFFF">  ! S, d8 ^3 k( B+ L
  71.           <td><?=$row['id']?></td>  : `7 i+ p# T7 T* n
  72.           <td><?=$row['userid']?></td>  
    1 P! j5 O0 s4 I+ @' Y& h: W( u
  73.           <td><?=$row['infoid']?></td>  4 k& M$ J( ~) S# b
  74.           <td><?=$row['money']?></td>  * ]5 p9 \$ A$ b
  75.           <td><?=$row['time']?></td>  ' g9 W. b. a+ C8 \) m+ d
  76.       </tr>  
      m0 _" i) G5 P- n1 G1 Z5 n3 S
  77.       <?php  # {' t1 H$ _6 V* z: _2 T! ]8 o
  78.   }  1 O; ]) n" k  [7 `; @
  79.   ?>  
      b8 U  u% o7 {' N8 \9 Q9 }
  80.     <tr bgcolor="#FFFFFF">  " l6 ~% q+ d1 d& A( _; f
  81.         <td colspan="5"><?=$listpage?></td>  
    " A: M* m- ~) p! }) B
  82.     </tr>  
    8 W/ W& k) a9 k( l, D* ^" e- U
  83. </table>" n/ L2 ]% _! Q/ {
  84. </body>  
    2 z- c# y3 `% Y
  85. </html>  - k0 q/ ?" G! b) a' _
  86. <?  6 K+ Y, q- O: k' z- N. o
  87. db_close();  
    # W( z' N) ?$ x8 Y" a& O
  88. $empire=null;  
    4 h2 {7 ^3 `$ {
  89. ?>  
复制代码
  1. <?php  - U- R% `( w9 ?3 d! }! A3 j" a
  2. include("./e/class/connect.php");   
    : d, A3 K, {2 }) u
  3.     * w/ L6 i: m8 [1 {& ]" @
  4. //后端Back-End   
    & w+ ^5 V8 U' Q( K
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    - H. }5 G# _0 u
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    % }/ w) W( U# q6 D. d* g* w
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    ( f" b( _8 p5 D7 N) h9 O8 I
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    / q9 I& G4 S* ^/ L
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    8 a9 p  l- a4 j! W' G2 w
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    & d( G/ V8 C* Y7 f8 B. J( `5 O7 N- \1 |& S
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    ) N6 [. B( p" g5 ], @0 P* [
  12. $loginusername      = getcvar('loginusername',1);     //用户名    # R2 `6 g, j1 e# ^) q
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    : W$ b* |2 p3 C/ s8 ]
  14.     $ l. z( R: @5 a+ M3 H, R
  15. //前端Front-End   
    4 F$ F: ]& k) J) _" _2 a- ~0 g
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    ! t  E4 d5 p2 O( B* O* K
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    0 y! I1 x4 j5 |. i5 }
  18. $userid   =getcvar('mluserid');    //会员ID   
    9 @8 \7 y+ O" T
  19. $username =getcvar('mlusername');  //会员用户名  , X9 R( c) C( c
  20. echo $username.'<br/>';   
    7 P# b" k, C$ c
  21. ?>
复制代码
2 a) q" i2 o" }8 r8 B% [

# Z5 z) Y5 `7 Z* C' q% O, S
  1. <?php  
    . x. z, D' B8 b# E) |5 j
  2. //会员信息  * t# ]. X% H# c6 U$ q- e
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  2 Q; \8 w; s; M) f/ \0 o
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  - l% f# G; {0 G7 _" N) u6 ~
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  $ B7 @( v2 {- h  C% s/ B
  6. if($tmgetuserid)    //已登录  
    - k2 r; L2 c2 }2 R
  7. {  
    & P- X5 @0 f3 ~5 L: ]) u2 n! K
  8. }else{//未登录  $ j: K) ?4 \+ g- R3 `) H/ R/ v/ V# }
  9. };  * e$ C5 H4 s7 S' u
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
# C+ E2 X2 y8 H9 ]( t: I$ J* K
  1. //修改  3 i5 j1 g9 k' J2 s/ I
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  9 x$ c- x" b& K( C  |1 E5 s5 f0 R
  3.   / L8 k; f6 [% V6 U
  4. //插入  
    & B: o7 V6 i: j$ Z. R
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    9 ^- {2 |5 g, z% n& P3 T2 R5 r) ?
  6.   
    3 V: F5 Y  a6 K- P8 W: V
  7. //删除  - U; C" e+ s* o3 H4 o
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    7 F& v7 F( |; ~
  9.   ; v2 ~+ v+ s7 k# n4 @$ n" P
  10. //查询单条数据  
    9 V" R! J, R4 r% A! l
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  ' m4 _  W# E& G, w. Z. E( j  |/ H9 m
  12.   
    ; p9 f/ Q1 M$ }* Y/ U8 s
  13. //查询多条数据  , w2 r6 h$ ~. e" v  |- R
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  ; I* o! v" C3 H3 O  c
  15. while($praise=$empire->fetch($sql)){  * b; [- R) P+ ?- J1 g" L: o; p0 b
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  5 U* q' F/ p& h8 g" J4 c
  17.   if($res){  
    7 b$ [7 h1 f) c5 E5 R
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  8 h4 Q0 [5 A1 z* l
  19.   }  
    ) L/ ]! E. d$ Y/ a# }; ~
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
3 g+ I$ I- f5 ~! n+ |0 |) M
  1. //筛选包含product的,并且对question_id去重  : \) X% D% k2 w5 i: Z. Y0 Q
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    $ ?" b2 P% Y% G+ {( W4 b& t0 e
  3.   5 w/ V+ t2 V) e6 E# ?( k4 `% z
  4.   ! [2 E# @+ b9 D
  5. //筛选不包含product的,并且对question_id去重  3 u* F# t( m# v5 l* z
  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″这个参数的记录  
      C+ V7 x+ D  ]3 }3 c; c' k
  2. SELECT * from test where FIND_IN_SET('1',area)  9 Z& R9 ^( l; g/ d4 _3 j; j; p
  3.   9 p! g' D; o# K) I! j/ A
  4. //查询btype字段中包含”15″这个参数的值  
    + ^! j7 i% C$ R5 g
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


9 e# O! c7 N1 D1 h+ S8 g6 B* d- S3 y. S

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

  1. $empire->fetch1("SQL语句")  * n9 h0 p8 \, N3 U* @2 p
  2.    
    + g# v. t6 N* }; J
  3. 使用范例:  
    , Y$ \, U( w. x, a! l7 ?: B( M
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  ) J, r. b: _' d5 m1 {/ F
  5. echo"标题:".$r['title'];  
    3 |. w/ N- d. W0 H% t2 T; }
  6.    / x" h+ D2 K: Y: n+ `8 @
  7. 4、统计SQL查询记录数函数:  ( v6 }. h' B) p- M
  8. $empire->num("SQL语句")  " o4 Q) s8 w- I$ F1 Z
  9. $empire->num1($sql)  % [( i2 H4 i9 r( F7 `) |" _
  10.    1 L$ [, D- T5 y8 R" I" o
  11. 说明:  2 N/ I8 b* ^7 l8 m6 ^
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
      F6 s* p" W# G. n2 f- G4 {
  13.    - {) l# p' W- |/ W# T' h$ c
  14. 使用范例:  
    & u5 L+ o3 H* E! d; J7 u
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    / f1 M! h3 q; q/ B
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  5 ~" x# `/ K4 D; [
  2.    
    " ?! y9 W& R% X  T
  3. 说明:  
    * T$ U5 `$ R0 a  D; b' N" _
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    # ~0 k  f' G" S; W& _
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    3 [  ~7 q9 o" ^$ t6 q* k* [% X
  6.    
    " u" {' a# w5 w; ^9 v
  7. 使用范例:  
    , i; _- Y+ L( h( A) ?
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  7 t: p, q3 K+ n$ k3 t" c
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    5 M+ G+ Z' d4 o: l
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    4 ?* S6 A$ b5 G5 B  X3 T
  3. $lastid=$empire->lastid();  $ {8 _" \- V3 j6 i1 p
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    6 ^+ U/ N! p+ |1 M
  2.    ) C) y3 @1 k; X8 w
  3. 说明:  
    # o* [/ r- N" \6 |  v: ~' p# x
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  4 i" N4 ^9 u5 B% b
  5.    
    0 z4 n2 E* E/ X
  6. 使用范例:  
    ( Q2 P) f1 N+ L3 i
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  6 {1 H$ {! D# R0 J2 L- t& q
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    + b( [1 ]# P" W
  2.    6 t* I3 A; |" t+ H1 E
  3. 说明:  8 o# d/ X) O# A) `. u
  4. $sql为query执行SQL返回的结果。  
    ' q5 q( G" \" H; Y( J7 T
  5.    ! n7 C$ `! ?1 x* L
  6. 使用范例:  4 y+ O& R0 o5 }$ }6 `3 z; [/ X
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    ( G9 [$ N: w) {! T( L
  8. $empire->free($sql);  
复制代码

% P7 g) H8 x9 ]8 z+ d- m7 M
* m( i* H% B1 O4 c
5 i3 U5 A; c! L0 h0 w' ~9 z8 a4 c! \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-7 16:02 , Processed in 0.127353 second(s), 19 queries .

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