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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  3 U$ _4 Y3 @/ T7 U: r  ?$ w
  2. define('EmpireCMSAdmin','1');  
    0 ]+ T; {/ p2 o/ I* H; l- r
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    1 y' |/ L0 }- r' m
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  6 r! H6 F: H( E0 x: _* z, X
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  : L# E) q: H! M% k
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  8 b: M% `: x2 C" b) J
  7. require(ECMS_PATH."e/class/com_functions.php");  
    & y7 B8 s+ f, m6 Y$ }
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    $ E" |+ S$ D+ M! h
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    5 Q( D9 ]2 v5 Z: Y
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  . v8 ^& t: U+ g, D8 j+ Z! ]+ W3 |
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  . J9 x( N' ]" p& l& V2 G
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    ) t* v* Z( M$ L7 G# O! K
  13. $link=db_connect();  
    . g, V) u, ?4 b9 N" w1 c& W
  14. $empire=new mysqlquery();  . J' R7 K6 M6 b0 H
  15. $editor=1;  
    / R+ A  _" ~% w9 k# d
  16. //-------- 分页参数 --------  
    " k. Q; o0 n* ]; D- S* v/ K+ o
  17. $page=(int)$_GET['page'];  
    & q# ?9 R" ]7 X6 O* [1 C, {1 y4 a% O
  18. $start=0;  
    ( f% w; t+ A& ~
  19. $line=30; //每页显示记录数  9 ^, s0 A  J2 p+ F  ~2 n: T/ r2 ^9 V
  20. $page_line=8; //每页显示分页链接数  
    * r' r5 ^" X1 o" Y8 `4 Q8 l" E" C
  21. $offset=$page*$line; //总偏移量  
    4 a7 R% _' |7 c4 W
  22. //-------- 查询SQL --------  , [7 h7 s8 }* ?* N. ?6 m# G
  23. //取得信息总数  ) U: j/ V  i, R8 _$ P/ o
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  . e8 J, d# u/ {; e$ l+ v, z
  25. $num=$empire->gettotal($totalquery);  1 {; j- [# C# C) f
  26. //select查询SQL  
    - E0 Y" @, Z- q
  27. $query="select * from {$dbtbpre}release_money";  * }$ }3 W$ U7 c0 U; d. f) f7 M
  28. $query.=" order by id desc limit $offset,$line";  
    7 I- u6 A0 V3 ]6 w$ }
  29. $sql=$empire->query($query);  % p" l0 h% e( n$ s+ y
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    8 c$ V* ~0 Y! E1 _3 z% d' J
  31. ?>  / U- G) N% E( m5 j6 K* b3 s/ A3 a9 Y
  32. <html>  6 M3 X3 A8 d4 J4 O) r
  33. <head>  
    : l: t# ^, L( f
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  ) Q" V" `1 d5 d$ v1 s) y$ r! @
  35.     <title>用户消费记录预览</title>  
    ) J# O0 k; T$ Q. K
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    " _8 s$ E: U2 V! F% k8 ]6 Z/ C/ k
  37. </head>  w- x' r" Q4 I
  38.     <body>  
    # O1 L& v1 a" @
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    2 ^% E9 Z9 y8 D8 o9 E. {9 S
  40.             <tbody>  
    , C+ w7 {. y, A
  41.                 <tr>   5 A: M+ B% N: t- Z0 H$ c8 W
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  8 P& R$ K0 V* W6 J/ q( t
  43.                 </tr>  
    $ {( ~  [& a3 w( m
  44.             </tbody>  " u- [$ \8 ?! p! j: y: H
  45.         </table>  1 C( q: t0 [, u& Y. M6 M) k) q
  46.         <form name="form1" method="get" action="?act=a">  
    0 Y, B$ ?3 O4 g* }7 |+ i* o) U
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">    x. Z9 ~& _9 z( R" Y
  48.             <tbody><tr>   1 \$ _5 L$ ~! v* q
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   * j; F' t( p, D
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  % o8 p) V( S& F+ \
  51.                 <input type="submit" name="Submit" value="搜索">  - {* b! s0 D+ a" g
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    ) G+ V0 `8 l7 o; _
  53.             </tr>  9 u+ _6 N$ x0 X  t
  54.         </tbody>  
    $ [. j# g0 _2 O! C0 \  Z
  55.     </table>  
    ' d1 C& x, g, p9 T. E) K) |
  56. </form>  
      R$ V' G. y6 W$ T# _9 T& r
  57. <table width="800" class="tableborder" cellpadding="3">  8 t, \1 \+ b. ~# n  I! A/ Q
  58.     <tbody>  8 E+ B3 O4 [7 r0 o  x" W, N' j
  59.       <tr class="header" height="30">   
    " G0 S% X8 p, r, [  p1 z1 s$ A
  60.         <td>ID</td>  % D# d" i+ L8 W* [/ v! Z  Q% k+ c! `
  61.         <td>用户名/用户ID</td>  ( R8 S$ x- b1 Y
  62.         <td>信息</td>  : r8 U  F1 e. m* v& o8 l
  63.         <td>扣款</td>  ; t* r/ U% [* P% `$ N$ f7 ?* l: f
  64.         <td>时间</td>  
    5 _# s0 }  B+ e# x! C" f
  65.     </tr>  
    , I% T% e/ b/ U; P" t
  66.     <?php  0 [, q" Q& _2 @% T; X5 ~
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  , S( y$ n5 Z9 u& i
  68.     {  
    6 V$ n, q' Y$ Y1 [  Q
  69.         ?>  : _2 y6 E$ @5 F6 ?
  70.         <tr height="30" bgcolor="#FFFFFF">  
    % q+ I. C) i7 {6 p( N% R" \  r
  71.           <td><?=$row['id']?></td>  $ F9 z2 B$ H; }: B2 i
  72.           <td><?=$row['userid']?></td>    Z7 T+ V% U! P% j9 i
  73.           <td><?=$row['infoid']?></td>  
    ( Z; H7 ]9 V& |/ z
  74.           <td><?=$row['money']?></td>  
    ) s& z' l2 Y- j: F, V
  75.           <td><?=$row['time']?></td>  
      c' Z# n/ x4 _# [
  76.       </tr>  , m2 x8 A+ N0 J
  77.       <?php  
    8 ?; R0 E3 w) M( f2 |& A0 h
  78.   }  
    % c+ i. N) c1 ~3 ~7 M$ y
  79.   ?>  
    ) ]( [8 B, ^$ }0 S
  80.     <tr bgcolor="#FFFFFF">  
    $ ?8 `) r! h7 T3 m  A
  81.         <td colspan="5"><?=$listpage?></td>  8 M2 H7 H! H6 o8 G, d
  82.     </tr>  
    / w8 @% a3 r- o
  83. </table>
    ! J6 F; m' R2 c8 }" |6 s( U
  84. </body>  9 O4 Q( m$ x! I8 _6 m: F$ y
  85. </html>  
    ! h# a; V8 G% c, M
  86. <?  
    $ B6 |% s* k0 ~) A  z$ W
  87. db_close();  8 e; Q$ P# g7 F* E, H
  88. $empire=null;  
    # n* c" [8 }: R( `$ ]) a0 w
  89. ?>  
复制代码
  1. <?php  
    6 K, G' Z! j/ k2 @
  2. include("./e/class/connect.php");   
    . [. t0 m5 W/ I/ j5 D/ z3 B
  3.    
    ( r, ^9 j2 F4 R# }% d8 ~* I
  4. //后端Back-End   
    9 S  M: O* b; R5 k
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    9 }9 p: f/ F2 i. ?+ S2 B  \! L
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    0 y/ U1 h  N$ Y, k
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID    , `  K. w& G7 K; K4 |6 P3 u# \. T
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    ) k! R9 f- C% R& ~
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    - F/ U& J* [1 `  T8 o# N
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    7 f4 G8 G4 d% F) n: G6 g8 Q
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    : x6 ^9 ]4 [2 q# I* n. m4 g
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    ! K  F& x3 R6 W# j" V" C. F5 E
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    9 [; q2 c! S) k' W2 P; B
  14.    
    5 w' r9 O) y7 C/ \6 O4 X
  15. //前端Front-End    : f$ b! Q8 x: F: V3 x! q7 |
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    & m% i/ p3 }6 Y5 t& Z
  17. $rnd      =getcvar('mlrnd');       //认证码加密    + o  n7 R# u, @
  18. $userid   =getcvar('mluserid');    //会员ID   
    " W2 W0 f% D! n" n* }
  19. $username =getcvar('mlusername');  //会员用户名  
    " B- B( p) I, Q. u: g5 x
  20. echo $username.'<br/>';   
    ( d' S) }5 i1 ]  m  k4 d; ~
  21. ?>
复制代码
4 p# r. F+ K( r/ x- g- f  q% A
4 a0 e0 d4 g' V- ^4 Q6 h* \( I2 D
  1. <?php  
    ' \+ z6 ^) I7 U
  2. //会员信息  . s: _/ f! C$ s0 J6 H; N* n4 O2 @, I: `& C
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  / [' l1 B  H3 J- k1 m
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    ' p. m3 t0 @9 J7 v3 h- A
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    , g; p1 D) T! O2 n3 a% V
  6. if($tmgetuserid)    //已登录  
    & k+ l, s, y( O
  7. {  
    ! E5 Q: Y! g0 s6 s0 K
  8. }else{//未登录  / J- W! ^8 D2 ?' @/ C5 Y
  9. };  7 M$ t+ v: D" i% a6 b4 V
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
3 _1 F& M/ c! L" E
  1. //修改  
    0 h. J2 S: A+ _1 X3 @% Z
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    0 B: L; q% r3 n
  3.   ' d' @2 c5 P2 F% Q! W3 f
  4. //插入  ( [9 v# T3 q5 F5 j: q* t7 n3 U
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    & ?8 [, l% `* R6 [5 D; E- e/ F: ~
  6.   
    5 e$ }5 ]$ B) H! _
  7. //删除  
    : H) c3 i* L+ M3 g
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    9 `; ~3 S7 M8 {5 H9 G* n, f; j( c  t
  9.   3 `0 ^7 y. j# M$ F' Y- u
  10. //查询单条数据  $ b' }( c2 `7 F/ c. f+ i1 p
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    : q5 U8 Y, w- B& Q) U) u
  12.   
    - T( }5 j* s9 [6 F9 d4 L2 ~$ ~
  13. //查询多条数据  
    ; R6 G7 m+ v2 T, R
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    9 Z* e: i* _- ?  S. `& _, z4 N
  15. while($praise=$empire->fetch($sql)){  0 W, h6 p9 _2 H2 _5 D
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    2 F1 }/ P7 b8 M+ o
  17.   if($res){  
    3 m7 ~: E8 q, s+ H/ i4 `' y
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    . X# Q; c% n. Q1 w
  19.   }  
    $ c  L) D* z& {2 W$ ?) c3 F
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数- C& j( X! q4 R0 p$ p0 Y
  1. //筛选包含product的,并且对question_id去重  " @* i# m+ I' J7 G) r
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    + N( ]2 r5 ~* \: s* S. x8 r
  3.   - l" O3 U0 ?; _; }& s4 q' J
  4.   8 o+ N" O1 D' C+ \1 `9 h
  5. //筛选不包含product的,并且对question_id去重  , E! G! }' @* p7 X
  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″这个参数的记录  - W5 g- g9 x/ z4 y) s
  2. SELECT * from test where FIND_IN_SET('1',area)  
    ( [' S7 b" L- O2 ~& ?! z
  3.   
    5 x3 O8 Z, P" R& G6 D8 s
  4. //查询btype字段中包含”15″这个参数的值  7 e% E# C& j  s* I# |+ P
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


; U4 E  z' ]8 A  G( ~

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

  1. $empire->fetch1("SQL语句")  " J) q: a5 G8 s
  2.    
    ! b8 ]# b# [1 W9 W5 C
  3. 使用范例:  
    ; z( O- V5 Y4 i
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  2 Q/ L* R. @1 Z9 ]4 Y
  5. echo"标题:".$r['title'];  7 v: z6 S( T" j9 Y: ?
  6.    - x5 G5 J! s& H) |) p0 }
  7. 4、统计SQL查询记录数函数:  ( R  I) G& A& x! X
  8. $empire->num("SQL语句")  
    , f$ y0 Z( N9 E+ A  c/ `- U9 b
  9. $empire->num1($sql)  2 o8 }! R* M; J7 l2 z
  10.    
    + {) O8 N- N1 r" n7 P
  11. 说明:  2 j4 Y0 Y4 q5 n; |0 m
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  ' X- p: b. l& i+ V/ v; Y! R
  13.    
    # n) t. k) ^5 d! ^( k
  14. 使用范例:  & a1 ~+ f# z( @' Y: P# J
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");    Q8 N3 E0 l0 z. q: {
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    2 m. [# E, C5 s, B' x- ]7 d* D0 }0 `
  2.    ) ]* c$ f/ c  v# h: f; X
  3. 说明:  8 q+ x* W0 w( @* o- [/ y
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  * R3 r$ ]! n/ x1 r
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    0 I+ @6 ~. ^7 z
  6.    
      B' a7 c, P! L1 q
  7. 使用范例:  
    ( ]2 Z/ j" J7 g8 B
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  * E, k7 ]. s. Z  `( c1 @- t" ~1 W
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  " o* j, O' F/ V0 C9 b5 M8 |% @/ l
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    ! e% y- w) I6 P' M
  3. $lastid=$empire->lastid();  
    ) J- {" v, _" N5 ]
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  & U3 p& A' x" b  ^) @
  2.    , K; @  |+ H' ^7 ~' q, p1 K
  3. 说明:  
    % u9 r1 D, _2 A+ r$ k8 M+ H5 ^* K
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    ' P/ b1 Y6 j) p3 v* K9 {  ^( D
  5.    
    " w4 h: W- z+ b/ y/ c$ l
  6. 使用范例:  
    8 R: I. k4 b) J7 u, U
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  ! \5 R! T* s6 f; c; p4 @( u
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    0 A/ d% h. I* c7 Y9 y
  2.    
    5 F8 I4 u3 G, l( @
  3. 说明:  9 @$ H; t4 E, i+ ^
  4. $sql为query执行SQL返回的结果。  
    $ R( O; c9 b$ I
  5.    ) e1 {0 q- f. _! P' G  q
  6. 使用范例:  
    2 ]. i8 E) M, X+ f! x/ F& Z' ?
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    5 M/ J6 s& \' _0 o& @! f
  8. $empire->free($sql);  
复制代码
8 S& k0 R, u: J0 E  r  A7 `0 \

3 A7 l  }% g8 I
7 s; ]! {; Y4 G* k: v. O; J, K1 i* F7 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:26 , Processed in 0.124530 second(s), 22 queries .

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