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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  + ~, F/ _1 {1 M+ N* m% K
  2. define('EmpireCMSAdmin','1');  " D, H* v( ^) \) D! v9 t
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    - J' f6 V4 B- ]! z) o+ r
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    - [% n6 P0 h/ {( V+ u' X. P& `
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  " ?5 B/ M; B/ S& i
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  + @3 r! b$ K1 _5 V9 x
  7. require(ECMS_PATH."e/class/com_functions.php");  
    . e2 I3 v  R" W" ?" L% Y4 }: Q( V
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    ) J% z# m. m# t5 O) r6 W  |" w' _
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    # q3 e  n5 F  M: |; S& I
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  & r9 W- X9 ]; c' z, L  S: b( l  B
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    / G8 {+ V: O* K# D7 H0 {+ D* y. C
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    & ~' P# \8 p, `. O' O  S' n
  13. $link=db_connect();  3 @# Y5 `; m2 r* ]6 ?9 Z
  14. $empire=new mysqlquery();  
    7 q/ P4 ?2 L* Q  x/ k( ~
  15. $editor=1;  6 ]$ P. {) B6 T" `
  16. //-------- 分页参数 --------  
    3 S" _% r  A2 I* K+ I
  17. $page=(int)$_GET['page'];  2 g$ }( p* _: X/ o
  18. $start=0;  
    4 L  O- h; b& E* ]* c. Y# O
  19. $line=30; //每页显示记录数  
    , O, |, p6 Y1 n+ v6 V" e
  20. $page_line=8; //每页显示分页链接数  ) R2 j- v. D" A& @; S$ Y# p
  21. $offset=$page*$line; //总偏移量  
    9 O4 |( ]& z0 P) p
  22. //-------- 查询SQL --------  5 k' `) m# p  Q# T0 S8 V! z0 y; [: g7 M
  23. //取得信息总数  7 h) {" y" B6 l/ x* N% b' m
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  2 }8 ?# @- c9 N/ g
  25. $num=$empire->gettotal($totalquery);  ; X7 {, O& @$ J8 |& L
  26. //select查询SQL  - Y5 y& Z1 K6 X
  27. $query="select * from {$dbtbpre}release_money";  0 j8 n+ J9 E: j* r
  28. $query.=" order by id desc limit $offset,$line";  
    , z! K' x) F) d1 D2 ?
  29. $sql=$empire->query($query);  6 [# b3 m$ z+ n+ F3 C, J
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    - ?' `9 n3 p. C/ S
  31. ?>    n( A' Z" }7 B; Z( I5 n! _. X
  32. <html>  
    4 j) Q; n. j7 u* a# K
  33. <head>  
    ; l% f: y  R- L
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  - }# p2 _8 e- H) V2 {
  35.     <title>用户消费记录预览</title>  % K0 {0 L% \' J. ^- ?
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
      w" q! s& d  ~4 x+ i, |, r: E
  37. </head>5 M  Q2 ?( W  u7 f
  38.     <body>  
    6 |7 w! I6 G4 g+ C/ J  w( A
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    4 m9 }$ X6 l$ a7 l
  40.             <tbody>  
    4 d/ ?! }' _1 U3 e/ `
  41.                 <tr>   
    + l- r1 J. H% m/ K. y
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    . w4 s7 }2 k4 t/ l0 z7 G$ L. k
  43.                 </tr>  , ]. ~$ o9 O$ P5 ~& V2 O" L
  44.             </tbody>  
    % j9 M9 j5 v" P' ?7 e1 ?
  45.         </table>  6 v6 \  J! |+ d
  46.         <form name="form1" method="get" action="?act=a">  
    - ?1 W' {: @0 s  G! n9 S
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  1 f5 ~+ y- E1 l
  48.             <tbody><tr>   0 r5 l& I4 Z5 h( k6 J
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    ' k$ [1 k  n. V2 Z
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  0 R% U+ w7 }; _! F
  51.                 <input type="submit" name="Submit" value="搜索">  
    $ n* t3 N+ k0 Z9 z
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  $ i6 g- L- X0 r* s
  53.             </tr>  8 ~. Z) K% C& c4 y$ ~
  54.         </tbody>  
    & {# T2 D0 V0 D8 F  I
  55.     </table>  
    9 T" H- C5 H2 {7 I- w" T
  56. </form>  " [4 e# W0 N$ @. ^  M
  57. <table width="800" class="tableborder" cellpadding="3">  
    0 l  {# X' _  ~) _$ L- n
  58.     <tbody>  
    2 D! _/ u3 W% C
  59.       <tr class="header" height="30">     e3 Y$ L% S- e& L2 g' o
  60.         <td>ID</td>  ; S7 _7 V: I2 Y4 o3 e& h
  61.         <td>用户名/用户ID</td>  
    1 ^& G3 p+ Q: O, J
  62.         <td>信息</td>  
    & x% g% z* ~9 J
  63.         <td>扣款</td>  ; b% _! U( Y1 N  A
  64.         <td>时间</td>  
    1 U, `4 f6 g" a9 h/ P& d/ L0 }
  65.     </tr>  
    2 h. j3 x2 {+ ?3 v. \
  66.     <?php  3 g5 ?; i3 R3 I  Z/ x4 N3 a
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    1 Z4 ]# \3 T) J: m( R# x2 Q) [4 Y
  68.     {  
    0 l: z5 w; z; ]" J8 }
  69.         ?>  
    ; E% Q  |( v& E/ E# G
  70.         <tr height="30" bgcolor="#FFFFFF">  
    6 T: K2 v( t! x% a9 e' T/ X9 B
  71.           <td><?=$row['id']?></td>  
    + J0 _- s+ r* d  ]9 I" B5 l* [5 M
  72.           <td><?=$row['userid']?></td>  + {, d# }! L" e" t3 L
  73.           <td><?=$row['infoid']?></td>  
    & _, o! [2 g. Y* H* l
  74.           <td><?=$row['money']?></td>  3 {. h9 \; z, E
  75.           <td><?=$row['time']?></td>  5 g" n6 ~. M8 s9 k: }0 {
  76.       </tr>  
    , S! E- l6 R% a+ r& A; z) U, X
  77.       <?php  
    - P; m: K- D: F3 o5 N& e
  78.   }  ! p* T1 `6 ?: Q8 T; \3 U! J) @+ Z* B
  79.   ?>  8 O" y$ h0 d4 A( f4 k* a  _  v7 P
  80.     <tr bgcolor="#FFFFFF">  ; U+ C1 F: h8 B$ \/ z7 n) C
  81.         <td colspan="5"><?=$listpage?></td>  
    + o3 I1 p" Z5 E/ e# R5 b# a
  82.     </tr>  
      {0 [, Q0 \8 z+ a
  83. </table>
    1 z* W* n; L6 Y6 ^( \) f" l6 o
  84. </body>  
    6 Q4 ?! @* ^  Y! ~: Y+ }9 v
  85. </html>  
    : l. h7 {7 \6 b% @; b7 r7 f7 m
  86. <?  
    & Z, Y, m2 s" O* }8 G4 @, ^
  87. db_close();  4 {" D: g. i! f2 N: C1 R: R
  88. $empire=null;  1 ~1 u1 y: l2 g
  89. ?>  
复制代码
  1. <?php  5 D1 D0 _4 c/ q- v  V9 y
  2. include("./e/class/connect.php");    9 x3 R  |, C# _
  3.     % p# f- u8 O9 B( O
  4. //后端Back-End    ! I* l% k' ^4 R  I0 D( z2 K
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);    8 |1 _) `* s7 g/ B0 s
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称   
    4 W) ?2 N* f0 a
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    # g$ I) f8 b  o. }. o3 l5 f
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    ) U; m3 |4 M; z6 e0 n5 d+ F2 B
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID   
    # U2 v/ A( b/ K
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    . B  X# Z! `) M2 V4 @5 Q
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID   
    9 b4 L: o3 A  e' G  j
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    5 P( T7 d% `8 R* m
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳    1 v' n, p' r9 h8 u3 R; y& O
  14.    
    7 K4 o" y) u4 d( }: ?8 _
  15. //前端Front-End    9 r/ n$ J# v0 I- ~
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    3 O' L& i7 {& \" y
  17. $rnd      =getcvar('mlrnd');       //认证码加密    - N8 j7 V- B( b2 N5 \  t" A9 u
  18. $userid   =getcvar('mluserid');    //会员ID   
    1 f1 x2 c- E, W8 C$ e
  19. $username =getcvar('mlusername');  //会员用户名  / ]: h6 L% K3 F" H% C, ?
  20. echo $username.'<br/>';      h! S8 X1 N' ]1 B- y
  21. ?>
复制代码
9 }1 U$ |, W4 }( N
' i. [7 a9 ]8 s- c* O- h
  1. <?php  : |6 S0 A5 j, \' `. S7 i" e# N
  2. //会员信息  
    % h5 q  w, X3 z# n
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    * r1 [' F% {! [. P# \7 H
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    ! T; D: ]5 ~# z6 o. \! H9 @
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    , P: b4 j( R) {* V  U- P
  6. if($tmgetuserid)    //已登录  
    3 w# ]. S( J( d& j
  7. {  ( g+ n& W6 r3 u  A
  8. }else{//未登录  
      ]  s3 j; s( i* [6 \9 q
  9. };  
    # N2 E) W4 D- Z9 V
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:( s5 T! g& k" ~$ j; T
  1. //修改  ! m5 s4 g& ]. ]% g( Y% c1 f5 \
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    3 [' b8 ]0 I; Y5 o: @  C
  3.   3 E$ ]% M" s: B4 b
  4. //插入  $ K/ h% \1 U! T5 I% p2 U$ r9 T; {
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    - D: Q: M2 P2 o5 P5 t1 N
  6.   0 @2 n. j. w+ f/ j$ s
  7. //删除  
    $ U# Z& C% e& o5 [  U9 s, ^
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  ( r8 q1 T( V( |) p2 Y
  9.   & S/ w9 P% T6 d
  10. //查询单条数据  1 Q0 d: ]7 U# {3 }8 g1 x$ A
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  4 h" m8 q8 l) o/ i+ G% b, n) N
  12.   
    4 @) T1 c1 u/ }: m4 i1 N% t7 Q
  13. //查询多条数据  
    * v8 u7 W8 C+ \/ ?) K
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  
    " L! Z  C# Y! G" c. C; T2 L
  15. while($praise=$empire->fetch($sql)){  * J1 _( }6 [6 M+ S1 e3 e' Q
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    " ]  }. ]2 `6 b" y9 i5 n* z
  17.   if($res){  
    ' Y: `- }% U% h3 u, A2 l
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    6 F& g4 z! c, I, X
  19.   }  & D6 o2 t0 q6 K( [& l1 g! o0 J
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
/ P6 _5 v/ V8 O( A& o# A8 K4 o
  1. //筛选包含product的,并且对question_id去重  
    . }4 n0 Y7 z3 n9 i2 h1 j
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    0 [- O7 i3 Z6 H* ~2 N6 P0 N& M. i
  3.   
    * o0 t8 q+ H. R# i4 K, r# F
  4.   
    * @/ }3 `! f5 {( \4 S
  5. //筛选不包含product的,并且对question_id去重  ( E/ N2 e9 B. i- a# s% I, h- l4 t9 w
  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″这个参数的记录  
    ; e8 S1 g7 X$ {+ U3 k1 f( {
  2. SELECT * from test where FIND_IN_SET('1',area)  
    ! f3 w$ _, n" s" E& W
  3.   
    2 H" \+ }. L1 t# y1 w2 Z
  4. //查询btype字段中包含”15″这个参数的值  
      C' c+ ^7 `& X6 J
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

3 V) A: v+ _0 f' q1 y" a

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

  1. $empire->fetch1("SQL语句")  4 J# B0 X8 G6 T8 U$ H: X$ g
  2.    
    ( d& \9 l  B4 P  K
  3. 使用范例:  
    ; |9 E# d) ?2 L5 l8 |6 r% l4 c! c
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  5 ^, @1 r6 `% L9 A5 [7 c
  5. echo"标题:".$r['title'];    m. ~! g3 K% X) o# l1 V1 N* g
  6.    8 i& L# L9 r/ a& u+ F) a2 W* R6 ^
  7. 4、统计SQL查询记录数函数:  
    3 B4 D, O1 ^, m3 c1 C) t
  8. $empire->num("SQL语句")  
    2 I* {  h# I+ y4 ~& h: Z4 c: s
  9. $empire->num1($sql)  
    5 u9 m! p- ~1 k; _' h2 z
  10.    & G7 E8 H$ p: e, Y& F" q
  11. 说明:  
    . w' H" q% E" v! P/ U4 N& H! u
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    0 ^, x* e; l6 t
  13.    + Q5 P) Y. q! w
  14. 使用范例:  
    2 N: w; m- I! x
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  ( |1 H& _, ~7 X5 b3 X# P4 L
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    % k/ n& q. _) c' J" t& Y- @9 D
  2.    
    5 B0 D3 @0 v2 p1 j
  3. 说明:  ! b9 g3 j1 e2 n- x
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  
    % |. r: a4 V& p" P9 o
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  ; h* I! h6 @: r# X1 E7 y( a5 {
  6.    
    " [+ G5 X3 @/ Y
  7. 使用范例:  $ u2 |- n  u9 R/ L
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  $ y2 t. W8 ^: R0 K. p( V0 A: v
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  * _% x' E, f8 q4 _
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  / f3 [- B- N2 _8 y( Y
  3. $lastid=$empire->lastid();  1 k6 ~5 P7 q1 Y) X7 Z: O2 V( K
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)    z5 E- c) ^1 C7 Z. G: q6 M, o
  2.    
    . K  a$ n3 Q6 @& _/ X
  3. 说明:  : m* @/ r( X/ Y4 N' u) }
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  $ A2 K6 g: M1 b
  5.    
    : E" p* P+ R$ v
  6. 使用范例:  
    7 W; J! X) _2 G2 M/ W/ Q3 f6 V# x
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    ; w! N1 B3 I  J$ L7 D3 b3 g
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  6 A- ?2 z# ]9 I; d/ Q
  2.    
    8 G7 h% B& h* K: c1 a3 A
  3. 说明:  . |# N: S' D8 h" U' l/ ~6 x
  4. $sql为query执行SQL返回的结果。  ; A- q  `3 p" B+ A' e% I- ^0 i
  5.    
    6 E, `+ z0 v9 k0 l
  6. 使用范例:  6 v* H7 C3 n, ~
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  8 l' w4 w, ]. p( w) E
  8. $empire->free($sql);  
复制代码
; `6 q( d( i9 M6 a

$ ~% b" O& p9 X9 P
; f; Y8 b4 V9 ^; W5 a5 {0 D
6 F/ s0 _# t* d+ z! ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 23:15 , Processed in 0.084146 second(s), 22 queries .

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