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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  
    3 x7 J) ^7 w& c- q" y$ N! b
  2. define('EmpireCMSAdmin','1');  
    ) n# P( P; }' n4 f
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  ( i6 K- F# v* z) z3 j
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    ) U* I4 F, J1 ]. o0 ?  |
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  % q. n, D% U( `7 _1 ?- k
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  ( q# j; j, ~: K0 u( ~' i0 K, ~5 x
  7. require(ECMS_PATH."e/class/com_functions.php");  2 j. `. D& ^& \( J: V
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    ) [1 {& q$ I* d5 z+ h; \) M
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  / g2 d9 x1 G6 ]- ^; u/ Z
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    , ?; g6 g& b) t6 ?$ ]+ @' F
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  4 w; t. J9 Y" c4 E: V- @6 U8 @1 r
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    ' b$ b( c) x* E+ P) v
  13. $link=db_connect();  + V4 s% I# L4 ~5 u
  14. $empire=new mysqlquery();  
    " v) h4 H% e" O- {: O# c% [
  15. $editor=1;  
      e. J) u( S% t# b9 l; r+ N7 k
  16. //-------- 分页参数 --------  0 m. W4 W; v+ j, o4 ^; r# G
  17. $page=(int)$_GET['page'];  
    5 [& T' b5 d$ f8 A1 n
  18. $start=0;  
    * a3 `1 Q; E" b% c) N* d( F& S. F
  19. $line=30; //每页显示记录数  ! N8 W6 C& n6 D
  20. $page_line=8; //每页显示分页链接数  7 y; N4 H3 W* @% Q
  21. $offset=$page*$line; //总偏移量  " e( g' K( F1 ^& v; A! d# D# d
  22. //-------- 查询SQL --------  
    0 H; C# ^! d$ G( ?3 L7 Q
  23. //取得信息总数  
    ) L8 J! c: L2 g; {
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  , O# z. T( B$ y" K6 C# t
  25. $num=$empire->gettotal($totalquery);  
    4 \( F+ V" ]6 ]
  26. //select查询SQL  & a* _2 h' t( r5 b/ Z! {9 ?
  27. $query="select * from {$dbtbpre}release_money";  
      N, p, f+ ]% t% T
  28. $query.=" order by id desc limit $offset,$line";  
    - T- U7 _6 q, f) _# }; e
  29. $sql=$empire->query($query);  8 Y9 q5 k2 E9 U9 E( d! g5 _
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  , Q7 y' h3 C) p' |
  31. ?>  
    ) L; ], d( |9 ?1 ^
  32. <html>  * l/ g9 l: [) D' r1 W, F6 K8 V
  33. <head>  
    9 F% A) b. f( B) o# f3 O
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    6 v2 K6 @# \# Q* ~) X2 a. U9 D
  35.     <title>用户消费记录预览</title>  : R9 U3 o# E. q& G9 C  v& l
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  . d4 `7 |* y: w+ G0 r. D" i0 |9 H* g
  37. </head>
    $ I" H2 C* f) z. l: K
  38.     <body>  ) t4 g$ l) }; `4 _; H. H& O+ L1 N
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    $ E& K* Y0 ~, O
  40.             <tbody>  
    2 o/ E" W9 m  D( i
  41.                 <tr>   & r8 A% m1 i: \
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    9 {2 L5 A# s5 D
  43.                 </tr>  
    7 m  ?2 S' \- D* h8 w8 R
  44.             </tbody>  ' p! h9 X4 {( I9 ~3 v
  45.         </table>  
    - v+ a& r% Y' t& I9 Y( g! k
  46.         <form name="form1" method="get" action="?act=a">  % N; J- M4 {1 J* n8 [3 Y1 w( ]
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  # s9 l, L& A; |- {
  48.             <tbody><tr>   
    5 T  l' F7 y& }3 a
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   + Z3 h9 e, \& C+ @8 V
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    5 H$ C: H) Y" \
  51.                 <input type="submit" name="Submit" value="搜索">  0 L: \( k) ?& ?! b/ Y( u) a
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    0 {  O3 N, r7 G/ [$ }
  53.             </tr>  / T- d/ L- r# Y8 r
  54.         </tbody>  
    3 w+ j+ P7 P1 U6 I
  55.     </table>  1 y# m- I. n& R/ y3 [
  56. </form>  3 |. v1 g" Q& @/ x! Q
  57. <table width="800" class="tableborder" cellpadding="3">  8 R# V4 D3 l+ J
  58.     <tbody>  7 W' S0 k1 O0 d% v) q; U: r
  59.       <tr class="header" height="30">   
    & a% Z: D& A  }% V! K
  60.         <td>ID</td>  ' |0 U  p" L8 e) `; B
  61.         <td>用户名/用户ID</td>  0 P" l( J: R* |2 q
  62.         <td>信息</td>  
    4 ]+ f( r( o3 g9 g
  63.         <td>扣款</td>  & o9 B$ B  \; e
  64.         <td>时间</td>  
    / G3 ]% O6 S) Z7 [
  65.     </tr>  ' l/ _. p4 n! N. s
  66.     <?php  : T$ E  m& y, S* H0 c
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  - T2 B* r8 L: R5 Z
  68.     {  
    : @, A) ]4 O5 I6 c3 k
  69.         ?>  
    2 L  E/ s' H. G& w7 A
  70.         <tr height="30" bgcolor="#FFFFFF">  
    . g" n1 j$ c3 ~4 O0 J! L4 s, R
  71.           <td><?=$row['id']?></td>  
    6 `7 Y! l0 W, P
  72.           <td><?=$row['userid']?></td>  8 z- h5 k) `+ C
  73.           <td><?=$row['infoid']?></td>  4 x, W7 \7 z7 b
  74.           <td><?=$row['money']?></td>  & l  ?1 ]9 _( `$ S. m; V0 G$ j: g0 C
  75.           <td><?=$row['time']?></td>  9 c2 D# n# N0 e$ }3 R
  76.       </tr>  ( f& n$ b- D; {# M
  77.       <?php  2 L' w0 K$ Z5 b8 J9 ~4 F
  78.   }  ! K0 T7 b% d( v+ D
  79.   ?>  
    * y, g2 T* F7 {1 L! k' U0 |
  80.     <tr bgcolor="#FFFFFF">  & N' n" ]' L" x" _  T* u/ l
  81.         <td colspan="5"><?=$listpage?></td>  
    . Q. c; [7 k4 G  e4 O/ }
  82.     </tr>  2 k; W" G' R& k3 I# m" ?. G
  83. </table>' a2 z. b  A, Z2 N! o/ T
  84. </body>  
    ) l* c8 |$ x5 r) i6 z9 `$ E1 Z" l; A: p
  85. </html>  
    ' e$ b0 \+ s& V* P7 @# t- k! Y0 Y
  86. <?  ( r0 p$ h- ~" [: L! B5 D
  87. db_close();  . R% x8 L5 t5 K" P
  88. $empire=null;  
    9 {5 L4 A! s- ?* v9 M, X
  89. ?>  
复制代码
  1. <?php  
    , g& l& E; z) K3 S# ]
  2. include("./e/class/connect.php");   
    & c1 `2 R' k' k3 @+ L' k3 T" n
  3.     % F" z) C& x" e, D  V" ?
  4. //后端Back-End    2 u/ e+ t2 s: R' e) f% R
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ( Y- ~: u4 Q: B1 T0 P
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    0 r# Q3 Z9 u/ A7 s9 B
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    1 Q6 O3 o' u3 p0 {
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密   
    2 w1 Z0 ]( k7 f$ N
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    ( ~7 [/ s5 C+ C- f" l  {
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    4 n6 {6 [$ {/ _2 y$ Y4 U( C% Z
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    0 L& H4 f9 |$ r$ p. @
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    & g1 v6 h4 x! \- f1 `
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    3 ~5 h$ X4 L- J2 M4 ?+ {8 ~% x3 D8 _4 {
  14.     ! I: R( T, U' H
  15. //前端Front-End    3 t! `' ]1 s. U
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    5 p$ x5 q2 i" {
  17. $rnd      =getcvar('mlrnd');       //认证码加密   
    0 S; b: F/ r$ \" o3 ?
  18. $userid   =getcvar('mluserid');    //会员ID   
    9 y2 H8 @  w6 n; Q% p( m7 |
  19. $username =getcvar('mlusername');  //会员用户名  / ^8 i) A/ `% A. I1 _. K; O
  20. echo $username.'<br/>';    , l) g+ t/ ]6 r3 @' U3 B9 G" T
  21. ?>
复制代码
) o+ E" ~3 Q# S9 `3 [9 ?# f

, b' c  ?/ a1 R# K, U7 J7 x
  1. <?php  
    2 J$ J. |7 p; A( g
  2. //会员信息  
    - |( P/ X8 s0 Y+ t* e! |7 @
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    . h0 r: J# S8 S5 z
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  ) A. E" `7 C9 H, f
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    " h* P  `0 a( y1 i
  6. if($tmgetuserid)    //已登录  
    8 P( i0 b( a; c7 h
  7. {  
      Q0 `4 L2 \  a3 R) o5 Z
  8. }else{//未登录  2 C1 }1 r! q: B  P( l7 c
  9. };  
    * O2 L$ m0 j8 g' i- h2 |  d) N
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
+ \# M. R9 h9 i2 ]
  1. //修改  , P* T8 D, _9 K. P7 [6 J5 ]. T
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  / O8 @* F. d1 _$ V) i" _
  3.   . S" R  X+ O6 }+ \7 r( B7 z
  4. //插入  
    & h1 Y  w  d$ ?$ {  @; u  `: U
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    & L$ w4 p2 S1 t* k) G1 Y5 O
  6.   
    , v$ c1 z& c% V: y9 _( o; o" F& W
  7. //删除  
    & }# Y7 X+ q/ m
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    0 e1 x$ d& w# `2 J8 {
  9.   
    5 y$ U0 h' T3 Y+ d" f+ }! i0 Z
  10. //查询单条数据  
    8 s* ]9 f# ~$ T8 S. [
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    ; N% R# ~$ p0 p
  12.     r' p& R: `/ s" y9 k
  13. //查询多条数据  
    8 d9 a+ @$ @7 [  C. j6 v
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    ' \9 B  Y% l+ }% q/ }0 V6 b
  15. while($praise=$empire->fetch($sql)){  
    3 r' ]3 t# O) j) ?1 c
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    : s  g. `6 D% a2 X5 N
  17.   if($res){  
    6 n+ G* b4 G0 @- y9 e
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  9 E0 s1 ]+ q( n; u; E/ j
  19.   }  
    - M3 G# h8 b7 z# p- K& H7 s
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数; W1 N& ~! b  }2 D0 k
  1. //筛选包含product的,并且对question_id去重  7 y* q( U- T* Z# D$ \0 a
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    0 z# {5 J7 I4 e. K' u
  3.   
    3 K- o2 H3 z& ~: z8 z
  4.   
    / d% {& d! v& r: z" x
  5. //筛选不包含product的,并且对question_id去重  * @: b2 B/ ^2 G0 T) s6 k
  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) d2 C" _% w* ~- |
  2. SELECT * from test where FIND_IN_SET('1',area)  + W# D" w9 \$ r5 X9 l$ l$ l
  3.   
    ! i9 U- n+ P! L- `2 V8 U- l
  4. //查询btype字段中包含”15″这个参数的值  
    % D2 F% D5 Q% y. _3 I1 g& i
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

( H3 w; c" J  `: G# R0 c) P4 J! X6 ~

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

  1. $empire->fetch1("SQL语句")  
    " i/ L; i) L' W
  2.    / ^, L( d* ]! z" n; N: y5 I) W
  3. 使用范例:  
    " o5 Q5 J2 s4 w' l" p' Y7 _# Z3 c+ R
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  
    . d4 H& u8 C; x
  5. echo"标题:".$r['title'];  
    9 z$ @  M+ W6 I
  6.    
    8 P+ M! [% w4 ~  O( ?- p3 C
  7. 4、统计SQL查询记录数函数:  
    / N5 s0 |; _7 T% R; L+ a8 _" k) O
  8. $empire->num("SQL语句")  : c* Z& F* i% p/ U) U) j
  9. $empire->num1($sql)  + I* U! h4 ~! p0 E8 b
  10.    
    8 a4 L2 `5 W( `4 p
  11. 说明:  
    ' q' N/ d  D' ~/ w' [
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    * [' d' x& [' z7 w* D- u
  13.    0 I: u6 M" G! u, d
  14. 使用范例:  + [1 Q8 h- r' M( m
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  # M! y8 V8 J3 k7 y5 u
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    1 P& t# |& j% ?3 {( [
  2.    - ]$ w' l( U( t  D: m
  3. 说明:    h$ P# }+ \: k3 C
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  , F1 y' B' \4 R3 A# x( B
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  
    0 ]7 Q' o" O3 M5 o  g9 s1 ^
  6.    
    ( E" n, S9 m6 L' ^( \
  7. 使用范例:  
    0 H2 X; n& K3 |0 L/ J" \! w: Z
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  + B' \/ B9 c  M6 m
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  ( u" E0 S3 h: d+ n1 v  R9 y/ N8 T
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  / l6 U1 Q: J4 O3 U% L, S
  3. $lastid=$empire->lastid();  
    3 q7 |  U" X1 O" A
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  5 P* q* [* m8 z' V6 b
  2.    
    / u" b! y: `3 y
  3. 说明:  
    & J3 Z/ k. k* ^0 v$ L8 E
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  8 @4 Y  k9 |7 C' D0 X
  5.    
    & A! o8 {* v' f+ I0 P; R
  6. 使用范例:  
    $ S+ A/ M% T( w3 U9 T, X, t7 {/ }1 v5 _
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    1 M0 r: U, ~, T0 F6 k  z9 u
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  2 ]% R$ ^% o- k% `
  2.      p" v- I. _. y4 y
  3. 说明:  , `- N/ q- [2 X* C/ N
  4. $sql为query执行SQL返回的结果。  
    1 F' j4 q6 `0 Q, q
  5.    6 a2 [! w! L+ Q
  6. 使用范例:  
    3 e1 n0 e: E7 k  j2 m& L3 y
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    1 u7 f$ T" ^; q8 q/ b4 n
  8. $empire->free($sql);  
复制代码
/ o7 Q; @% R2 q3 a  K! ~- w
( G0 }; A4 i: |$ ~
! v- v% S  G: N. Z, D
& p9 M) K6 j% ^6 P9 t5 m5 E' R- C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-20 00:43 , Processed in 0.122739 second(s), 20 queries .

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