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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. <?php  
    " Y- }5 A9 J5 K' p9 u& J
  2. define('EmpireCMSAdmin','1');  
    6 w' F5 _+ t2 n, }6 p5 P3 I
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  . J$ S( _( S: u' e6 s; Q5 ~3 ~
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    7 `, a0 @4 |7 }  Q( f3 z) u  F
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    & r3 m3 x4 [0 L% n. Z1 c8 n  V
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  7 ^  W- U2 P8 _% i: Q
  7. require(ECMS_PATH."e/class/com_functions.php");  
    + N7 k5 j  P) f4 w+ |7 @, j6 _
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  
    ( e, t8 F; J$ \; P2 M3 m" s
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  : B/ L" j% {) J* k/ N3 d* o" p
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    / c2 f6 Q/ |; a( ?+ ]
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  1 [9 u4 M+ u: v6 {
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    ; O' I. W2 u0 @& l5 D
  13. $link=db_connect();  
    ( f( V1 F+ E  z4 q# }- c# A0 t* V
  14. $empire=new mysqlquery();  
    % R) Y4 ?* v, m. f8 w; W) ?
  15. $editor=1;  
    0 N' \; h2 k9 w& X: f6 p
  16. //-------- 分页参数 --------  
    $ Q, o: f0 e* c$ w+ ^
  17. $page=(int)$_GET['page'];  
    ) P8 b  ~; G9 A: C
  18. $start=0;  
    3 s1 f1 K* i/ K0 N3 C. e
  19. $line=30; //每页显示记录数  
    # V& Q; W* @0 R' p; ~7 x+ G$ c! n
  20. $page_line=8; //每页显示分页链接数    K! v; Q  p: t0 P& v) m
  21. $offset=$page*$line; //总偏移量  / U% C" _1 Q4 o5 t4 P5 M% @: @
  22. //-------- 查询SQL --------  * H/ I" k$ ~5 A3 Y5 J: A7 D/ C
  23. //取得信息总数  " E. w6 t0 O+ w: ]" H
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  : ^0 g5 m# b, }2 {% r
  25. $num=$empire->gettotal($totalquery);  ( u5 C- ~! o7 n( f$ l
  26. //select查询SQL  ; E0 f7 p9 \; a5 T4 w
  27. $query="select * from {$dbtbpre}release_money";  1 N0 U; \8 u. Y- j& D2 T
  28. $query.=" order by id desc limit $offset,$line";  7 P3 V5 k5 B( h! V  B! [
  29. $sql=$empire->query($query);  
    / _/ U' L/ @( [8 g
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  8 y( |) \) J( G# I% ?( w9 B
  31. ?>  & y4 u, g- U. Y& z' U8 [
  32. <html>  5 G* A7 u/ z: X5 j& o# _: R
  33. <head>  0 d; b! Y) i* f
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  , t, ^2 F4 W  ~1 r3 o% L, G
  35.     <title>用户消费记录预览</title>  # a7 K1 y0 S$ ]1 l, `# X
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  
    & i7 b0 E2 ~5 p9 g) m9 J; [
  37. </head>
      E( E: \" g0 y
  38.     <body>  
    4 F, e' s( x( g- V8 x6 Q
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    5 |4 P. c7 ~1 o0 f$ b! I4 _
  40.             <tbody>  
    9 V4 e" H  |- T2 K( P! g, D5 ~: q
  41.                 <tr>   0 N7 }' S/ N* E3 X; T4 o& r; T
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ) d6 @2 ^& f% S
  43.                 </tr>  8 ?( y* `- {% U1 c1 m. ~
  44.             </tbody>  
    & v0 h& W5 {5 B. ?+ e. _
  45.         </table>  
    5 w, B+ \. L6 Z- H
  46.         <form name="form1" method="get" action="?act=a">  ! W* `3 \- V2 |! l
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    & y% Y% u( ?. m* D8 e
  48.             <tbody><tr>   / B8 K  Q; k8 A
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    * Y) b- B* k4 d/ C3 u' o- [" t
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    * L% n( Y. l( [/ ]2 u
  51.                 <input type="submit" name="Submit" value="搜索">  
    # o, \  K" O( F1 q* w
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    & I5 Q) f6 M7 w% q- D8 }! y3 i
  53.             </tr>  4 ?) z- d. P) h. e" e* c/ c" N
  54.         </tbody>  ' M3 f& R1 }4 ^, c9 o. a3 e
  55.     </table>  
    : ^1 D* q1 j" S/ C2 T( _* J. j8 E- ^
  56. </form>  
    % Z* i7 v% O6 u/ c% ~7 Y( C1 l
  57. <table width="800" class="tableborder" cellpadding="3">  6 g- ?/ h  C2 H: @5 e' }7 ^+ K
  58.     <tbody>  2 y+ U3 m# ?: j, Z) e
  59.       <tr class="header" height="30">   0 v$ E/ ]  z, S
  60.         <td>ID</td>  , m% W/ @2 K0 Z
  61.         <td>用户名/用户ID</td>  : |5 d6 t6 z! E: e- j( n0 z! R
  62.         <td>信息</td>  
    % M( U6 d4 P7 J$ [
  63.         <td>扣款</td>  
    * \% M  T4 K4 N- Y, ]5 y
  64.         <td>时间</td>  
      T! C/ Y% Q* b! x" _! E4 S5 i- {
  65.     </tr>  
    . B/ ~6 R8 E% u  K: n# |4 |
  66.     <?php  3 H7 D) S$ x, S; }+ I6 p
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  $ r! a9 W0 \3 I; e% ~
  68.     {  
    $ w, z" t" n! @& \/ e3 Q1 V
  69.         ?>  7 P& s" w; ]. |/ S2 ^
  70.         <tr height="30" bgcolor="#FFFFFF">    k0 x! ~$ H1 _) Z! `, d
  71.           <td><?=$row['id']?></td>  - g2 g& u' [* ?% u
  72.           <td><?=$row['userid']?></td>  ) n; }; d3 ~: r
  73.           <td><?=$row['infoid']?></td>  
    7 E1 v. K! e. j% b, g! V' A
  74.           <td><?=$row['money']?></td>  ( \- K4 N; U2 U% u9 _
  75.           <td><?=$row['time']?></td>  
    " ~) U$ C1 o: a. j/ h
  76.       </tr>  6 t7 i, Y& ]1 X6 y
  77.       <?php  
    9 {7 W, q, ?/ S- f* S+ W# {
  78.   }  
    # N- w3 W+ L/ E4 b- y* Q+ T% [9 ]
  79.   ?>  # o) n9 F( ?9 |0 O  c/ u% X
  80.     <tr bgcolor="#FFFFFF">  
      ]8 f$ S' |+ P; _. x
  81.         <td colspan="5"><?=$listpage?></td>  
    7 p* \6 R  Z) Y( d4 A( R
  82.     </tr>  2 C' T9 @* f. X  G
  83. </table>
    ) }( i" n6 ?' h  X7 ]5 D7 @% }2 \2 g
  84. </body>  
      }2 h9 |8 D1 l7 {0 S) p4 d# L
  85. </html>  & z  t* u7 H7 m$ n9 t# i% S
  86. <?  
    . m* q0 O3 q- ~+ {4 H. b% E
  87. db_close();  
    4 s1 n- ]3 Y6 P. H# ^; t
  88. $empire=null;  ; P9 I% Q+ _3 m5 s2 T0 P
  89. ?>  
复制代码
  1. <?php  
    6 F. B5 f: f9 N7 ?# i
  2. include("./e/class/connect.php");    " L# v" a" V+ L1 E+ L
  3.     " ?0 o8 ^) n8 M2 G
  4. //后端Back-End   
    % h  t3 G- X  q# C1 S+ h
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    ; |7 ~  {( p# u( S! D* ]! I
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    6 v. S7 }4 h! }9 s, v' {- P
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    ( p, S3 V/ x5 I6 T
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密    , d, q  q. \; D0 z
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    0 U; ]% Q4 ?" _. G
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密    2 ~  x1 l& X; w2 m$ }7 I
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    2 b5 o0 K9 P/ F# U# p" m# M4 G$ a; B
  12. $loginusername      = getcvar('loginusername',1);     //用户名   
    . Q2 t7 E# T9 l) {- w
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    ) c5 s4 p; v! [  y, W
  14.       c. k& h% c) E7 x* B' k
  15. //前端Front-End    / |% l! T' ?, z6 C! `
  16. $groupid  =getcvar('mlgroupid');   //会员组ID   
    ! p; X- _$ ?: f- h
  17. $rnd      =getcvar('mlrnd');       //认证码加密    ' K# H( L4 O. @% t' S
  18. $userid   =getcvar('mluserid');    //会员ID   
    ' D0 Q1 O# S1 f) u9 A9 _/ {) m
  19. $username =getcvar('mlusername');  //会员用户名  
    . G' m8 K$ r& K; f
  20. echo $username.'<br/>';    / O* D& B; Q& X! B
  21. ?>
复制代码
4 W( A/ L% L7 T0 m

; n9 s  n" u  A
  1. <?php  
    & s3 Z1 b% A& c6 A5 z0 l/ M
  2. //会员信息  2 o8 m7 e' a, M- [! {
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  3 z- n3 u! s9 {6 n( V% V
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  
    7 E( L) ]4 j$ F4 b; R. A8 {
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  3 X- S4 [* i+ c% ?' E
  6. if($tmgetuserid)    //已登录  
    8 t3 V) a; c& ]+ N$ G( I7 d3 K" I
  7. {  
    3 y' \* Z8 T& D* T4 T
  8. }else{//未登录  5 K; o- w: O5 W' [
  9. };  * R( T+ n/ i* X% o
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:& R6 j9 Z) @( ?* i# q# k2 W
  1. //修改  
    2 j+ Y% i+ b; m& x& c* ?" O
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  
    : Z+ H. G/ u! q  n/ t
  3.   
    : {& j3 ~2 O0 J, A+ B5 Z4 F- f. i
  4. //插入  
    + C' k# `7 q6 A; s
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    ; g5 n6 n( H" A7 k) ~9 e6 p
  6.   ' Y$ z: ?8 u8 X7 ?- w) ]% S
  7. //删除  
    5 ]+ G* {" V& r
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  
    - e9 V" a! C3 f; g0 `8 D
  9.   
    : p: w- r- C  |0 J
  10. //查询单条数据  ; {- r! P: n/ l0 f( l6 F$ V
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
    - E+ W1 X, p. }. E, \4 D! d
  12.   8 }% _, h( o8 K  r0 y6 ]" @5 P! t
  13. //查询多条数据  % u. F7 B: N9 [
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  4 E7 a6 ?$ X0 V1 N
  15. while($praise=$empire->fetch($sql)){  
    # w# N- D0 u4 k3 v7 ~! ^9 W8 U
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  . `8 N( C6 B2 `
  17.   if($res){  
    ( t1 {3 W) z2 X
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  
    9 d! ]" G) e% _3 G
  19.   }  
    : q& h$ \: f  ^9 v! z2 p0 {1 M/ C
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
$ s6 _# K% ?9 b+ D
  1. //筛选包含product的,并且对question_id去重  % [. k5 Q+ g8 F' @4 C. D& ]% r( W
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    0 ?/ ?$ c2 L4 u* L8 l4 x' A
  3.   ! Z* B' q7 M2 \
  4.   
    8 d5 {& Z# c( U+ g' H0 k# L
  5. //筛选不包含product的,并且对question_id去重  
      a+ L: f$ z1 [" [8 |- e, 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″这个参数的记录  
    0 z/ j: W; ~0 c6 {! a; I& A7 `) k
  2. SELECT * from test where FIND_IN_SET('1',area)  4 ~, m# g) I! j& f) y
  3.   3 \8 t1 ?- ~# `: {- f! n1 K
  4. //查询btype字段中包含”15″这个参数的值  
    + j, N: t3 `7 G( Q+ ~& f* x$ p
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

2 c3 j* b) f$ E" g) f

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

  1. $empire->fetch1("SQL语句")  3 L& `4 R1 W% a
  2.    
    ' B5 ^* `/ a1 T" b# N8 w$ ~
  3. 使用范例:  & G/ `3 E: C# g% p& m. y' g) N% y
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");    v8 z4 ~; \. U1 a# }! [& \" `' ~
  5. echo"标题:".$r['title'];  
    8 L' p7 Z( y2 V% o; k, V
  6.    
    + {' @# l" X6 s( B( V
  7. 4、统计SQL查询记录数函数:  
    - M* w- r" Q/ }' D2 W' K8 W1 j5 E
  8. $empire->num("SQL语句")  2 E4 f1 B% ^4 {. x. R. [
  9. $empire->num1($sql)  ) d- M! @3 T1 x9 Y
  10.    
    7 c' Y9 \% i6 K
  11. 说明:  
    9 F. \# s# J3 t+ \$ s( U
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    ' _; p5 m; S* f
  13.    
    / v  r. D3 k7 k( C# H, O$ \
  14. 使用范例:  : ?- f( ?7 O4 m- V- q8 ^
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  
    , L+ s. ~1 ?" \# K& ?9 \5 L9 J. B
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    ; z7 x# \# J# o$ h) @7 o% g
  2.    
    ' o' l# [) U/ D- P: E+ s0 Q
  3. 说明:  
    % ]0 b  ]4 l- a( f0 Z. s  R5 x5 k& Z
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。    S; T$ |: x; l
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。    H2 G* }4 }5 i/ {
  6.    
    6 U) M' u" }  i  R! C2 @" n6 D
  7. 使用范例:  ( D3 D: \0 M( E% k9 Y' ^6 D
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  
    : q+ S* R7 _  n5 ^4 Z! _) ^5 Q
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  
    * h( ~0 q) z, ]0 r) l$ v$ F4 Y$ G9 \
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  7 P" ^) b5 A, W2 g. z! |6 O9 @# ^
  3. $lastid=$empire->lastid();  1 c- a8 a6 [% X( x
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  
    ; R' Z' g$ @4 e/ ]7 @5 g
  2.    
    1 \- d  _9 T! Q9 l- _
  3. 说明:  5 g( [9 s! l, [2 I
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  5 y2 j* u1 n0 L) k
  5.    
    & a' G; n7 u5 q. p- J; T4 q* F
  6. 使用范例:  ' a4 t8 K  l6 y  @+ ]) V
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    / t; t* B0 P0 m8 y* z
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  2 H1 ?* \5 q  i5 |* U" g
  2.    
    ) X+ a4 V0 l' U7 G
  3. 说明:  # K# V  i% b, y- s. ~5 m
  4. $sql为query执行SQL返回的结果。  
    ) z* A( F- t# @9 m' o5 o% n; S
  5.    1 B; i$ W/ v' N! e* i
  6. 使用范例:  
    ; F4 O1 r4 O) j; q( \( y) b
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    # y6 P2 H4 J7 S0 C) D
  8. $empire->free($sql);  
复制代码

, V4 P9 e# p" d, N) ]! P* }4 g3 u- H4 Y9 y1 Z+ _/ }( w7 R

% q3 u, m  c' v' }" y6 Y, Q' o% R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 17:33 , Processed in 0.184974 second(s), 19 queries .

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