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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  & `# W+ _( P7 e. T  `, z, n
  2. define('EmpireCMSAdmin','1');  
    7 d$ m  J% s2 i7 x- ^9 q& T; u
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ; g& U( v" r6 l$ f$ E8 }* o! P* e
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  3 C* G7 D* T8 @" m4 O# x) M/ G6 Z  U
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    % U- W3 j! }: }8 Z& U
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  
    8 h3 |6 @9 r9 |$ L# v5 M
  7. require(ECMS_PATH."e/class/com_functions.php");  4 L3 q  o3 {2 {: Z6 ]6 ^
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    , X7 e/ F0 }) Z" S7 ~
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    " ?1 v% {! i2 e! @1 R' S
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    * G8 K6 K# k; d; t
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    8 @% o- D4 J5 i
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  9 y8 G3 u: m; N( K  x) Q
  13. $link=db_connect();  
    ) Y# l) N5 X0 [# E
  14. $empire=new mysqlquery();  * o* ~) W3 a! V" _
  15. $editor=1;  
    , o: q5 O9 B9 w, v$ T9 s
  16. //-------- 分页参数 --------  ! }" s1 C( G' {2 w3 P- c/ L
  17. $page=(int)$_GET['page'];    m/ s7 \$ H' x) i) ]! a8 n
  18. $start=0;  
      x; i; j* Q; p
  19. $line=30; //每页显示记录数  
    ( z& s- n  O2 ]' ]' h
  20. $page_line=8; //每页显示分页链接数  
    0 j" D$ J, M' U4 {
  21. $offset=$page*$line; //总偏移量  
    . Q7 ~1 v# n6 _+ z
  22. //-------- 查询SQL --------  
    0 q! \& F8 w2 D1 s1 i) @7 e1 Y1 X
  23. //取得信息总数  
    # g: |( s/ u6 X. b2 @
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  . [$ f% L4 R/ }! r
  25. $num=$empire->gettotal($totalquery);  
    $ w9 [( F! m. f
  26. //select查询SQL  0 h% G  ?! O' h% H5 |- `& H
  27. $query="select * from {$dbtbpre}release_money";  4 \6 t& J2 Y) C2 v: ]! Q8 D
  28. $query.=" order by id desc limit $offset,$line";  6 D" M+ ~+ b" c% {# u
  29. $sql=$empire->query($query);  " a* L& z' A% n! S( N
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    7 B3 {5 [0 h: g
  31. ?>  
    1 q0 s0 P) I# R1 V6 \
  32. <html>  
    ( k' Z6 j6 T! }9 K
  33. <head>  
    , N# m4 X5 d3 j, {$ r9 b
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    % D7 C, L7 z' q( _# Y# [
  35.     <title>用户消费记录预览</title>  
    3 @+ B2 ?) X: `0 `  m
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    , M: `; j: D& a
  37. </head>  X8 S, t9 V% i+ S( Y- J5 I
  38.     <body>  ( r2 y  K4 Z: ~
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    & J9 P- E7 {8 o' \* y5 g
  40.             <tbody>  
    3 a/ t; A0 Z! d6 v4 n
  41.                 <tr>   ) d4 W6 p" N0 P: b2 Y) Z
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  4 ~: b8 d" S0 ], U4 L
  43.                 </tr>  % w) G% G0 |7 h- Y; n+ F/ R
  44.             </tbody>  ( p; R, ^% b# b8 t$ I- \
  45.         </table>  + ^% s+ d) b* `6 Z9 G4 t
  46.         <form name="form1" method="get" action="?act=a">  3 v- H2 u- M, L3 L/ u$ B
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  : M: U3 X5 z$ Q( S* R  f  ~
  48.             <tbody><tr>   
    # f+ `  F! S* \6 z- U
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   # ?3 G/ Q4 T/ m
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    , ~% F) H0 z6 d5 y3 o6 B
  51.                 <input type="submit" name="Submit" value="搜索">  , b* C  o* |% L
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    ; O) M, u4 u5 O& s/ t) H1 J; N
  53.             </tr>  3 P$ Z9 w- o5 e
  54.         </tbody>  4 |+ P$ C, I- s! D
  55.     </table>  
    " O1 t9 s# `+ G0 h# f/ t, ~" c& O+ A
  56. </form>  6 B& L' F+ O7 w9 K
  57. <table width="800" class="tableborder" cellpadding="3">  
    " e8 G5 X  n1 D$ @) M
  58.     <tbody>  
    2 p* A  K% v- H: L
  59.       <tr class="header" height="30">   : \8 u4 [. l/ L5 e' Q0 Z5 M
  60.         <td>ID</td>  
    2 {4 Y( d' s2 X9 l/ h# s
  61.         <td>用户名/用户ID</td>  
    - g# m0 t" ~+ u% P: w
  62.         <td>信息</td>  
    " ]  m9 j: r. g' [+ f
  63.         <td>扣款</td>  1 h6 ?1 y7 n1 e4 S: u- |
  64.         <td>时间</td>  2 M$ u/ b+ B9 T
  65.     </tr>  
    $ y, f; g$ j. G# Z5 l5 x* {
  66.     <?php  ! k7 v# v4 n# b7 s+ }) x
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  ) h& m8 Z2 F4 k5 @
  68.     {  
    1 b% \1 C, @5 r5 ^* _" Z
  69.         ?>  
    , O- H* V+ l$ ~" U9 l, H/ S  w* H
  70.         <tr height="30" bgcolor="#FFFFFF">  * B+ m7 x& i7 X0 z7 s1 @
  71.           <td><?=$row['id']?></td>  5 p0 \; Y. h. G2 R) ^% X
  72.           <td><?=$row['userid']?></td>  
    1 U) S  k( {# b
  73.           <td><?=$row['infoid']?></td>  , m. Q! N0 @- i6 S' j! O) ?
  74.           <td><?=$row['money']?></td>  
    : B; M* W+ n& X6 q: g5 V
  75.           <td><?=$row['time']?></td>  
    $ t) V* t/ X1 \5 U
  76.       </tr>  
    ) v. |  {" c' b- f
  77.       <?php  
    $ L1 ~1 }' W$ C  F' U- A
  78.   }  ! E6 N& R+ D1 }# T. T
  79.   ?>  * e; b5 s7 s1 x: d
  80.     <tr bgcolor="#FFFFFF">  * w( f. E6 g+ i0 g6 T! z5 F
  81.         <td colspan="5"><?=$listpage?></td>  
    1 d  U$ k/ r2 g0 q4 M" z% ?  g
  82.     </tr>  
    + c- L6 j8 s6 K! E; k
  83. </table>
    & i- e0 {& x5 L% v# C7 }
  84. </body>  9 X+ T$ `1 t% Y& V/ X- B* V- @
  85. </html>  
    3 f" T# P, b8 ~: M
  86. <?  5 p% P, ]0 p6 D9 |+ t- Z
  87. db_close();  
    8 ?  Q9 h% i3 y) M" ^0 A
  88. $empire=null;  5 @3 e) {* {$ r7 {
  89. ?>  
复制代码
  1. <?php  
      e0 s! b( h7 P* E: R
  2. include("./e/class/connect.php");    + e6 {7 y, h" h* u: s  f
  3.     ' V* _4 F7 R! E4 ~7 P
  4. //后端Back-End   
    0 ~$ p4 M/ K0 Q! |5 G+ y
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    5 L8 X% @. t( `: \: \
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    9 p1 C2 v; p* l3 P$ V
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    / n$ ^: X* V; B9 ], p
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    1 L& `9 f- y! y+ j/ h9 G) Q
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    ( s: o) @; O6 u% B' r3 K0 _% W
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    0 z. |3 P7 |9 `2 ^- |, w
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    $ h. h7 J) J+ k' N1 D+ p+ `
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    " w& T1 l* s$ X: R
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    / U* w6 g9 b, h0 Y! k
  14.     5 i2 N1 A7 h: _; n1 X7 w4 l2 c
  15. //前端Front-End   
    8 ^) T$ X; x( L  h0 t& t0 e
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    ) K" e: K8 x% d: s  L: w8 |; w
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    ! [3 K5 d1 y+ B" H0 _
  18. $userid   =getcvar('mluserid');    //会员ID   
    : D" k6 L9 r; d9 o3 P& e% A
  19. $username =getcvar('mlusername');  //会员用户名  % B7 {, r' W7 h7 Y, i
  20. echo $username.'<br/>';   
    # ^! Z; b3 s0 n3 l/ ^6 `0 |6 r5 |
  21. ?>
复制代码
: y7 W4 g7 b! ~& W2 k4 l: }, ?
2 _* E, b& K% K& j7 n+ {) ?
  1. <?php  
    * c. F; b- E  `6 `* A7 Q8 O
  2. //会员信息  
    - g# ~4 o' I. J& k& Y7 `3 ^) U
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    * P0 B. i# N- M2 R0 n( n0 s
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    5 _2 r2 Y5 j  @/ s/ @& w5 I
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  # @; w7 e" z+ \, L, Z' P
  6. if($tmgetuserid)    //已登录  3 B4 v0 U8 `% P
  7. {  
    , X3 L  f9 a; Z
  8. }else{//未登录  # l& h& m% m2 S6 w8 j2 Q* G- \8 u. O
  9. };  
    8 ?7 \0 t9 ]% F) B6 b
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
# [, A- J; ?' d! N6 P& c: h
  1. //修改  
    * w0 I5 w) ^$ l! K
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    * a  X" F8 f+ u) G1 d1 z
  3.     |1 v1 i1 ~# T$ q5 ?
  4. //插入  
    # T5 s& F4 \9 d1 n( |
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  ' A# C! j) {% w* F9 r8 @
  6.   
    % r5 J8 J  j" m  `$ i
  7. //删除  3 s6 ^& @) K$ n3 b' Y) s: O
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    ) ~1 V6 m5 g9 l
  9.   
    0 P3 z. l1 p) m9 ], U( _
  10. //查询单条数据  
    " L" g! e7 W" |5 v
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    ' l6 e/ ]. M5 I& G9 b& j
  12.   . k' W/ h  A' ?6 m# R5 `
  13. //查询多条数据    e8 |9 s, l3 _+ d
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    ( u9 K0 n9 V& D) K5 z
  15. while($praise=$empire->fetch($sql)){  ( J6 h% j- ?; q! _: {9 z: J) r
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  6 @* \: N4 _; \& {
  17.   if($res){  
    3 T) D4 N, W0 q
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ( U' Q  k  C0 c% ]5 g* a* o
  19.   }  
    % K2 ?& s$ ^% v! U3 ?4 U/ a
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数: E5 u6 @! r4 i
  1. //筛选包含product的,并且对question_id去重  
    2 N) e0 @( c9 j
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    ( h/ ^4 [, O0 ?1 E, y
  3.   
    ( V3 h4 e8 S5 B3 n% r( k" Z* p. m
  4.   
    5 ?& U( D. {% E- F( h  O
  5. //筛选不包含product的,并且对question_id去重  , q# V7 D8 U( V0 c0 x+ 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″这个参数的记录  ' e' N* |7 C" ~: l  H  j2 z
  2. SELECT * from test where FIND_IN_SET('1',area)  
    " n& J& M9 E/ c, s8 ?# R
  3.   # d# ^  m2 s2 x$ w
  4. //查询btype字段中包含”15″这个参数的值  
    & R- z! @# `  N8 c
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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


; S$ L, i3 B) Q

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

  1. $empire->fetch1("SQL语句")  
    : v; D) s- r( b& _% c  a: ^0 u
  2.    ) o) P, [( ]3 ?8 x7 L/ b5 y- Y
  3. 使用范例:  " H6 m+ w: x( A( B$ [2 x
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  6 W" L, \( l: @$ d: d% X1 Y2 f
  5. echo"标题:".$r['title'];  
      `6 G3 ?7 _% a# r0 O: G" D3 G
  6.    " k5 N) ~& M) d' r( S5 p
  7. 4、统计SQL查询记录数函数:  , b5 A. o  H0 u4 a5 J  z: q1 l
  8. $empire->num("SQL语句")  8 M) \1 F# {0 Q  {2 _
  9. $empire->num1($sql)  5 L# T1 A; o3 `  s" [4 K+ @
  10.    # l+ j4 v9 Q4 y( X$ d
  11. 说明:  
    : z. I" |5 C) x% h4 h
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    2 m9 f6 ]# B% F0 |8 {1 i! ^) N
  13.    
    ' }& H9 b0 w- H5 N5 b. }
  14. 使用范例:  7 j/ ^0 S& e: r. S* g; b
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    # W; D# O- L/ I) s5 r: {) E
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  ( @+ y; H0 p, R/ h" Q; R* P# f( c
  2.    
      t& y- `. |7 G% j. H4 M
  3. 说明:  
    . Z9 k1 W7 r% Z# Z  N8 w+ ^
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    ! m' r2 O. `( p4 k* t  a" e( P
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    4 X6 V6 G/ x% T
  6.    
    - h' M8 y9 j& ^5 c: E) q8 Q4 ~9 E3 y
  7. 使用范例:  & s& H; _3 \# R
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    2 d9 x1 o5 F  M8 k0 V
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    ' X; j  |" r* O# U
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  ' u/ `1 ?4 a3 z4 v! l' N: W6 j( x
  3. $lastid=$empire->lastid();  
    7 Y) V! _. c% k6 @4 n' K/ \
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    ; U1 p7 N, |% Q3 M2 A
  2.    ) U+ P) e6 n0 F
  3. 说明:  5 Y( e6 q4 a. _' c: f
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  
    6 g5 j' n9 ^, R4 H! P0 t$ i
  5.    0 e% W0 i8 f1 g& k: ]% X, k
  6. 使用范例:  4 O0 k5 t* {; G" O+ t
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    & Z8 x' |$ X: ]4 U9 I
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  
    ; L# A. }. W% L! {! m4 N# K, p: H: |- J
  2.    6 O; P. l9 _3 O5 H' y  H
  3. 说明:  
    2 N& I5 j  Y: q2 ^* T; q
  4. $sql为query执行SQL返回的结果。  6 G3 i9 s0 G* p3 C* `0 L7 P
  5.    
    - W. D" @5 [4 O" a1 o
  6. 使用范例:  - V# W1 f# N8 w2 y! n& {4 {  }
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  $ y& W# }! a/ `! w4 B+ W% V
  8. $empire->free($sql);  
复制代码

2 [0 j: X8 W/ s7 l7 c: P+ _0 I
3 W2 a. D% V' t+ ?& j
" a7 a, }; S* E' `: x2 ?0 j7 B3 H0 c) P3 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-10-18 20:26 , Processed in 0.128446 second(s), 22 queries .

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