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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-1 10:54:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. <?php  
    0 F1 z8 k! d# f2 t: x: g
  2. define('EmpireCMSAdmin','1');  5 c) b! L( y2 W  o2 K: v
  3. require("../../class/connect.php");//引入数据库配置文件和公共函数文件  
    9 Z) o9 B8 b, S2 c
  4. require(ECMS_PATH."e/class/db_sql.php"); //引入数据库操作文件  
    + Z3 S1 p1 a; |6 y* H6 `0 ], L$ \
  5. require(ECMS_PATH."e/class/functions.php");//导入编译标签文件  
    4 P$ @( c/ u4 n  e
  6. require(ECMS_PATH."e/class/userfun.php");//引入自定义函数  6 t) ]- A# s! n  l
  7. require(ECMS_PATH."e/class/com_functions.php");  6 H4 S1 m" G  Q$ ]' f; e6 g
  8. require(ECMS_PATH."e/data/dbcache/class.php"); //引入栏目缓存文件  7 m3 P' {+ G, Y+ o2 a
  9. require(ECMS_PATH."e/member/class/user.php");  //引入会员文件  
    / f' j: R& w! m+ u# [
  10. require(ECMS_PATH."e/class/memberfun.php");   //会员处理文件  
    : Y. z, l# M' l& n
  11. require(ECMS_PATH."e/data/dbcache/MemberLevel.php");//引入会员缓存文件  
    " }5 U% A# G2 q8 l8 J2 ^( z" k6 s
  12. require ECMS_PATH.'e/data/'.LoadLang('pub/fun.php');//引入分页语言包文件  
    : y0 z" u" h0 _# y
  13. $link=db_connect();  
    . J1 M% A8 p  T7 l
  14. $empire=new mysqlquery();  
    5 }- j# d+ D; L: H; U& o3 Y' j
  15. $editor=1;  9 J7 Y  V0 w" i# g4 u& j
  16. //-------- 分页参数 --------  ( A6 m/ y* u  X% q" ]
  17. $page=(int)$_GET['page'];  9 ~% j  @7 f$ T4 G9 @
  18. $start=0;  + Z, n: X; i; F' \/ T1 [7 [- X" {8 x
  19. $line=30; //每页显示记录数  $ L* m2 Q2 f* I& J" u7 _& A* _1 w
  20. $page_line=8; //每页显示分页链接数  % r/ d4 ]3 B7 n' r9 P; J
  21. $offset=$page*$line; //总偏移量  
    . ?% H& h6 g& o( n8 l1 b
  22. //-------- 查询SQL --------  
    * }, @$ r: L! ]4 J0 d* M7 r
  23. //取得信息总数  
    2 L' H5 S  I; d0 P5 D' N2 C
  24. $totalquery="select count(*) as total from {$dbtbpre}release_money order by id desc";  
    % p  o2 I% }* z& F5 n! M6 w7 a7 O( k
  25. $num=$empire->gettotal($totalquery);  
    # q8 L0 O  D7 p  ]. t
  26. //select查询SQL  
    , s* G- O+ I" {% [* o
  27. $query="select * from {$dbtbpre}release_money";  
    ) C3 G; k& ?+ D& w' Z. X3 i
  28. $query.=" order by id desc limit $offset,$line";  " T$ U" j7 H8 X" z" w
  29. $sql=$empire->query($query);  3 p7 h8 v, E7 y0 e% v
  30. $listpage=page2($num,$line,$page_line,$start,$page,$search);//取得分页导航  
    ' N: P4 o. e( E4 y, k
  31. ?>  
    + r8 A, V2 h% e) Y
  32. <html>  
    ! S. Q9 t6 X/ N+ k* F
  33. <head>  % G+ W1 H* g7 \. x1 S
  34.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  4 V+ Q9 |! A7 E" ^4 {% t
  35.     <title>用户消费记录预览</title>  2 \  w7 q4 t& ~; r
  36.     <link href="<?=$public_r['newsurl']?>e/admin/adminstyle/1/adminstyle.css" rel="stylesheet" type="text/css">  5 Z" X; s# K/ Z2 W
  37. </head>, N" M1 J; m+ U. ~' q8 Z) i5 e$ |
  38.     <body>  
    : x7 Z9 f. P. ^1 V' h2 M7 Z8 @+ a8 [5 k
  39.         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">  
    $ M7 k0 k" k7 r4 [  [$ n8 e
  40.             <tbody>  
    3 [8 @( m! M9 y( Q' n2 V
  41.                 <tr>   2 q  e! r. @  C! O! [% n
  42.                     <td width="50%">位置:<a href="index.php">用户消费记录</a></td>  
    ( K7 `8 `0 d1 K, ^" a9 }6 o
  43.                 </tr>  % d- C* A! ^; `! T" d% N" }
  44.             </tbody>  8 B7 E' ~3 q* j
  45.         </table>  2 l- |. B. d. f$ Y) Y; C" z* o3 N
  46.         <form name="form1" method="get" action="?act=a">  
    + _  ]: q# v- e9 L& b6 h2 ?# q
  47.           <table width="800" border="0" cellpadding="3" cellspacing="1" class="tableborder">  
    4 F- m( _2 n( T( M
  48.             <tbody><tr>   ) T+ K6 }/ ^. h; c1 h
  49.               <td height="25" bgcolor="#FFFFFF">会员名:   
    5 V0 g2 z) v4 u8 X% a
  50.                 <input name="keyboard" type="text" id="keyboard" value="">  
    $ H% ~* x9 C" z
  51.                 <input type="submit" name="Submit" value="搜索">  1 v( e* ]/ R8 C% i9 E( p" U  q
  52.                 <input name="sear" type="hidden" id="sear" value="1"></td>  
    : @8 G9 w+ |' Z/ w+ r, f' g! K
  53.             </tr>  9 Z  V! ^- R0 V: ?8 a3 L% N
  54.         </tbody>  
    4 \& G8 M+ P: j' U4 l
  55.     </table>  + V1 z+ P; T7 n) @4 p' C5 n
  56. </form>  
    - H- I: q2 a2 `* r3 r2 a( c
  57. <table width="800" class="tableborder" cellpadding="3">  
    5 ~3 h& M# S+ A& N
  58.     <tbody>  
    % `3 G% _% @3 P
  59.       <tr class="header" height="30">   
    7 g, X  D, s1 b/ Y3 r
  60.         <td>ID</td>  
    ( b' G$ c: Z2 i
  61.         <td>用户名/用户ID</td>  / _) T( Q' p2 F2 O8 ]: P4 Y$ {
  62.         <td>信息</td>  8 T* k0 J+ }/ O+ N# v3 A
  63.         <td>扣款</td>  
    % E! c7 j" G! G, V1 \, x- L
  64.         <td>时间</td>  9 ?0 H2 p7 S) V  y
  65.     </tr>  
    8 ^  C) W  q4 j8 d0 n
  66.     <?php  9 n( O+ z5 |7 t8 ]. M! |0 K4 g' t
  67.     while($row=$empire->fetch($sql))  //循环获取查询记录/与上面的$sql形成分页显示  
    ' j$ l7 ?0 h/ }( w: ]: {4 R
  68.     {  . F8 k& K3 ]( e6 A, c6 r! x
  69.         ?>  7 {3 E! k( ~$ |/ \' [0 A
  70.         <tr height="30" bgcolor="#FFFFFF">  
    6 i2 x7 J0 M: g: _1 M
  71.           <td><?=$row['id']?></td>  
    4 ^$ |. B9 k: ?+ M; Y: J
  72.           <td><?=$row['userid']?></td>  ! K6 \* B6 k/ u& B9 Y
  73.           <td><?=$row['infoid']?></td>  + y' ]+ e# Q# G% L4 K! \
  74.           <td><?=$row['money']?></td>  8 B% \, r4 v! e  A0 V3 u+ B; p
  75.           <td><?=$row['time']?></td>  . t4 V+ t+ k9 k6 c" a/ i
  76.       </tr>  ' v; ^9 U  q9 w
  77.       <?php  - S+ n+ g, x4 R) G( B5 ]
  78.   }  
    5 Z" c( h+ m3 X$ {; i+ z
  79.   ?>  $ W% {9 u* |9 E  A
  80.     <tr bgcolor="#FFFFFF">  
    2 k' C2 K7 d, w( f; A
  81.         <td colspan="5"><?=$listpage?></td>  
    7 o6 h. ^3 q+ m- l
  82.     </tr>  
      g: k- H& ], l  \
  83. </table>0 _6 l( q0 R' j
  84. </body>  
    9 ~% |; {: U$ V5 S. p
  85. </html>  9 S5 {# C7 s% C/ e. c5 j$ m. E
  86. <?  $ B1 a1 B! f8 I" U
  87. db_close();  
    ( {1 K$ @2 M( t* Q
  88. $empire=null;  
    . E4 D5 ?7 j( Z; [8 K+ K( t# b
  89. ?>  
复制代码
  1. <?php  
    ( r- z5 J' g: y* N' J) t
  2. include("./e/class/connect.php");    ! z. j  y- _; z; L
  3.    
    6 s, ?$ X* @, ^
  4. //后端Back-End   
    * f' E+ ]3 C8 g2 ?6 ?$ t
  5. $ecmsdodbdata       = getcvar('ecmsdodbdata',1);   
    " z* u' c  C' H2 S$ T8 Z0 |. l
  6. $eloginlic          = getcvar('eloginlic',1);         //用户许可证书名称    1 B; C& W1 ~2 N/ v) u9 o
  7. $loginadminstyleid  = getcvar('loginadminstyleid',1); //风格ID   
    ! M" X# j' E! E; n1 h6 Z' G. I
  8. $loginecmsckpass    = getcvar('loginecmsckpass',1);   //密码加密      W! `/ H  V0 _6 ~! T! b' ?
  9. $loginlevel         = getcvar('loginlevel',1);        //组ID    ( Z& m: u! I$ U. A
  10. $loginrnd           = getcvar('loginrnd',1);          //认证码加密   
    ; W" L* e, f! \
  11. $loginuserid        = getcvar('loginuserid',1);       //用户ID    - K& H2 S; B; m; B+ W% O
  12. $loginusername      = getcvar('loginusername',1);     //用户名    8 D' A" ^+ w. C# ]8 G
  13. $logintime          = getcvar('logintime',1);         //登陆时间UNIX时间戳   
    $ l5 W5 Q* p7 P4 P  t
  14.     8 F% c( R' U4 I1 {6 Q/ t" w
  15. //前端Front-End    ! n& L+ g9 \, O( R2 s" T. K1 b6 y
  16. $groupid  =getcvar('mlgroupid');   //会员组ID    ! y% X# c2 x: T2 {2 o( w4 i( W& E
  17. $rnd      =getcvar('mlrnd');       //认证码加密    7 g. D$ I8 V; J1 E6 s5 m6 E
  18. $userid   =getcvar('mluserid');    //会员ID    ' v+ C' o3 g( N9 D0 W: ^
  19. $username =getcvar('mlusername');  //会员用户名  7 g8 q, ]9 |, f; d
  20. echo $username.'<br/>';    + s, |+ D" p# `: d( f6 ^! e
  21. ?>
复制代码
& m1 ~) K# ]1 O8 \
2 G6 s% Z+ a9 E) [6 n& F2 ^* Q2 c
  1. <?php  - e' k* u+ {1 L! q3 H
  2. //会员信息  
    7 d* H( I5 H- e# f% h
  3. $tmgetuserid=(int)getcvar('mluserid');  //用户ID  
    $ X+ N* M* V- ~: O; H/ }
  4. $tmgetusername=RepPostVar(getcvar('mlusername'));   //用户名  2 ^. ?1 {$ Y4 J( H5 r0 d
  5. $tmgetgroupid=(int)getcvar('mlgroupid');    //用户组ID  
    * x5 E9 B; J5 `. U
  6. if($tmgetuserid)    //已登录  ) w5 f2 W# V0 A' t& Y* u1 U. K, B
  7. {  
    9 _: M0 e; f8 `6 {% b* F  E# o
  8. }else{//未登录  
    0 P$ Y  L9 V$ l- c) N
  9. };  
    ' l( E; j3 R1 w
  10. ?>
复制代码

  1. define('ECMS_PATH',substr(dirname(__FILE__),0,-7)); //修改
复制代码
帝国CMS封装后的增、删、改、查语句:
/ i! w( S% [( {6 [+ S/ X
  1. //修改  
    % D$ X1 E/ ?( \, V. \" M
  2. $res=$empire->query("update {$dbtbpre}t_report set `handle`='{$handle}' where `id`=$id");  $ M6 _( k( U9 @) |0 Y
  3.   : r1 X* q" L# x+ n( R/ A
  4. //插入  
    5 \; B+ ~" A) K
  5. $res=$empire->query("insert into {$dbtbpre}t_app_version (`version_code`,`version_name`,`log`,`time`) values ('{$version_code}','{$version_name}','{$log}',$time)");  
    ; U. ]$ n, D8 C! I% P# T
  6.   8 a$ ?% F9 Z- ^, \% W# A8 _3 j1 z
  7. //删除  
    ; @6 |* N' J, u' \. j: D/ F
  8. $res=$empire->query("delete from {$dbtbpre}school_location_v1_1 where `id`=$id");  * i' }& |, v+ I; Q& v. q
  9.   7 r% C( u( [, s6 w; _: X: X' O, G
  10. //查询单条数据  ! t! D) c9 F: f% a# H
  11. $res=$empire->fetch1("select * from {$dbtbpre}t_circle_comment_comment where `comment_id`='{$comment['id']}'");  
      D. ]4 X( S7 w: i4 b, g3 |
  12.   
    * z" K( _# a/ P+ J8 b
  13. //查询多条数据  
    . u8 ^% c, l  h/ ?: N% [
  14. $sql=$empire->query("select * from {$dbtbpre}t_circle_praise where `user_id`='$id'");  1 ]4 A1 d. N8 J
  15. while($praise=$empire->fetch($sql)){  : P& l, E  ]0 c, X% A2 E, w( Q
  16.   $res=$empire->fetch1("select * from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");  
    + X' P: d1 A5 z4 l# m
  17.   if($res){  - F8 d3 i' T$ T* j9 b; W
  18.     $empire->query("delete from {$dbtbpre}t_circle_about_me where `from_id`='{$praise['id']}' and `type`=1");    //点赞是1  ' h4 T  m6 d; L( y1 _3 q9 w7 {5 l
  19.   }  * g3 p- m- D* _5 Z# W
  20. }  
复制代码
设置指定表的索引字段,增加查询效率
  1. ALTER TABLE  `mcc_service_question_category` ADD INDEX (  `category_id2` )
复制代码
FIND_IN_SET(str,strlist)函数
& r: W, V2 f' D  p- R8 ~
  1. //筛选包含product的,并且对question_id去重  % K  \& {3 \% ^' Y
  2. SELECT * FROM `mcc_service_question_options` WHERE FIND_IN_SET('product', TYPE) GROUP BY question_id  
    # w4 r/ T: l# T5 v0 o1 D
  3.   6 \! L1 l$ L# h* U1 a2 G
  4.   
    ' i4 w4 {; V$ w% `
  5. //筛选不包含product的,并且对question_id去重  
    - l9 L* @' Q3 ~: k! Q7 O
  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″这个参数的记录  ! @( |" q5 x6 j- o9 c
  2. SELECT * from test where FIND_IN_SET('1',area)  ' c- D; y" V$ |7 ?2 n" a( q, B
  3.   ! V7 K1 {% S& G
  4. //查询btype字段中包含”15″这个参数的值  
    5 g8 P5 f6 t' G+ O! @* ~
  5. SELECT * from test where FIND_IN_SET('15',btype)
复制代码

FIND_IN_SET和like的区别

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

& c& m0 V+ H9 I

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

  1. $empire->fetch1("SQL语句")  
    $ }* k% ^4 B# r2 \8 Y& @
  2.    
    ; M- |0 {0 ?6 p+ [
  3. 使用范例:  
    * K6 n+ [% ]2 d+ h( T
  4. $r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id=1");  ' X% z1 u, t) z+ ?2 s
  5. echo"标题:".$r['title'];  $ j1 x. z; U3 C  ^
  6.    
    & n0 X+ _1 \2 V' C8 G0 t* k/ Z! g' ]
  7. 4、统计SQL查询记录数函数:  9 S* R" m6 @" u: a( S
  8. $empire->num("SQL语句")  
    7 l/ B% _% x$ O
  9. $empire->num1($sql)  0 A7 x; K- S+ \8 x9 Q
  10.    5 i, S" M& ~: {. C8 _
  11. 说明:  / u4 M: p3 |1 ^
  12. 两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。  
    5 {- n; i2 |% B! X5 t
  13.    " m& ?" j' J8 W0 S! F$ C
  14. 使用范例:  
    2 n/ C8 |/ a2 a7 K& v, Y" ?
  15. $num=$empire->num("select id from {$dbtbpre}ecms_news");  3 }4 C8 v. y9 z# H. \# }# q8 h9 w8 Q
  16. echo"新闻表共有 ".$num." 条新闻";  
复制代码

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

  1. $empire->gettotal("统计SQL语句");  
    6 Z% A( l# p$ r; o
  2.    $ s6 m( [6 F3 d9 Z' }" v* D$ x
  3. 说明:  
    - r& e5 ]; b- a; ]- |. s
  4. gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。  - Y/ g3 c1 S2 y
  5. gettotal()里的统计数一定要as total,如:“count(*) as total”。  1 F( ^% y& f% {! g$ n
  6.    ! h* ]- q% C3 u5 h! T
  7. 使用范例:  - [4 K1 v- w# @2 }9 h4 t- @
  8. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news");  / K+ e+ s9 c! G
  9. echo"新闻表共有 ".$num." 条新闻";
复制代码

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

  1. 使用范例:  % `# e9 ]8 k  R
  2. $empire->query("insert into {$dbtbpre}ecms_news(title) values('标题')");  
    / Q0 E6 }( {5 ?7 O/ E
  3. $lastid=$empire->lastid();  5 f6 r/ \! P- {) h$ y  y
  4. echo"刚插入的信息ID为:".$lastid;
复制代码

移动SQL查询结果记录指针

  1. $empire->seek($sql,$pit)  2 G& t2 j8 M- T" r
  2.    
    ' Q4 B# M2 U4 ?- j$ m3 o6 G
  3. 说明:  2 W8 m; R$ M- N! E( W1 l3 z6 X/ ?8 v1 p
  4. $sql为query执行SQL返回的结果,$pit为指针的偏移数。  - i* p7 D3 ]6 ]+ ]0 P+ A5 @5 I; D
  5.    4 \6 k3 |' J0 h5 W
  6. 使用范例:  
    ' E- q) N6 m! c
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    3 i- E# h1 N0 H3 T1 J4 M3 [1 i% L
  8. $empire->seek($sql,2);
复制代码

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

  1. $empire->free($sql)  / J/ x3 b( s. b$ I( `' v) r  D( v# K
  2.    
    ! S& H$ h2 @! ?
  3. 说明:  2 \7 J% B  f) M+ f8 z
  4. $sql为query执行SQL返回的结果。  1 G% |- I  f# ]* {
  5.    ' m" b' A( T& R
  6. 使用范例:  
    - y% T- m; ~: m4 D& O
  7. $sql=$empire->query("select * from {$dbtbpre}ecms_news");  
    2 A$ [, E2 c" d+ j) q& l
  8. $empire->free($sql);  
复制代码

5 h, Z3 {( P& Z& z! d( Y, E, w- D) I/ q+ {$ @( E% E# q2 u

" \& v; ?0 \+ n; X( a8 j" k1 g) E3 u+ I* a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-17 20:02 , Processed in 0.122638 second(s), 20 queries .

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