www.9778.com帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

封面模板
可以实现循环子栏目以及头条调用,但是头条的图片和标题只能用一条,只有使用灵动标签。实现效果如图:

例1:连接MYSQL数据库例子。(a.php)

判断会员是否登录

高亮显示导航栏代码,通用方式,包括所在内容页看了下论坛,大家基本使用的是灵动标签来实现当前栏高亮,我这个方法是根据js来实现的。如果需要你就试下吧方法如下,大家可以举一反三,其实是很简单的修改:div
class=header ul class=menu mct id=navi lia href=/首页/a/li lia
href=/wangluodongtai/网络动态/a/li lia href=/youhuajiqiao/优化技巧/a/li
lia href=/huozaidangxia/活在当下/a/li lia
href=/woaibiancheng/我爱编程/a/li lia href=/xiaojiqiao/小技巧/a/li lia
href=/hulianwangwen/互联网文/a/li /ul/divscript type=text/javascript
language=javascriptvar nav = document.getElementById(navi);var links =
nav.getElementsByTagName(li);var lilen = nav.getElementsByTagName(a);
//判断地址var currenturl = document.location.href;var last = 0;for (var
i=0;ilinks.length;i++){ var linkurl = lilen[i].getAttribute(href);
if(currenturl.indexOf(linkurl)!=-1) { last = i; }}
links[last].className = menufirst; //高亮代码样式/script说明: ul
class=menu mct id=navi 中的ID值要和 var nav =
document.getElementById(navi); 中的想同,即在js中获取id=navi
值,这个值要唯一,不能跟其它CSS或JS代码中ID同名,或者自己改成别的名字。
links[last].className = menufirst; 这一句中的 menufirst
为你的高亮样式。————————————————————————-例如:div
id=main-navdiv class=wrap cf ul id=navi3 class=menuli a
href=!–news.url–]首页/a/li[e:loop={select classname,classpath from
[!db.pre!]enewsclass where bclassid=58 order by classid ,0,24,0}]lia
href=?=$public_r[newsurl]??=$bqr[classpath]??=$bqr[classname]?/a/li[/e:loop]
/ul/divscript type=text/javascript language=javascriptvar nav =
document.getElementById(navi3);var links =
nav.getElementsByTagName(li);var lilen = nav.getElementsByTagName(a);
//判断地址var currenturl = document.location.href;var last = 0;for (var
i=0;ilinks.length;i++){ var linkurl = lilen[i].getAttribute(href);
if(currenturl.indexOf(linkurl)!=-1) { last = i; }}
links[last].className = current-menu-item; //高亮代码样式/script

?php$bclassid=$GLOBALS[navclassid];
//取得本栏目id//取得本栏目下的子栏目?[e:loop={select classid,
classname, classpath from `[!db.pre!]enewsclass` where
bclassid=$bclassid order by `classid`www.9778.com帝国CMS下在PHP文件中调用数据库类执行SQL语句实例。 desc ,7,24,0}]div class=fengm
h3spana href=?=$public_r[newsurl].$bqr[classpath]?
target=_blank更多+/a/span?=$bqr[classname]?/h3 div class=fpicbox
ul?php//这里是取得该分类下的有图片的最新数据$commbook=$empire-query(select
* from [!db.pre!]ecms_news where classid = .$bqr[classid]. and
titlepic!= order by newstime desc limit
3);$commbookurl=sys_ReturnBqTitleLink($commbook);while($r=$empire-fetch($commbook)){
? li class=fpica href=?=sys_ReturnBqTitleLink($r)?img
src=?=$r[titlepic]? i?=$r[title]?/i/a/li ?php }?/ul /div ul
class=fmnews?php//取得该分类下的最新数据 $newbook=$empire-query(select
title,titlepic,smalltext,titleurl,keyboard,newstime,groupid,classid,newspath,filename,id
from [!db.pre!]ecms_news where classid =.$bqr[classid]. order by
newstime desc limit 5); while($r=$empire-fetch($newbook)){ ?
lispan?=date(Y-m-d,$r[newstime])?/spana
href=?=sys_ReturnBqTitleLink($r)?
title=?=$r[title]??=$r[title]?/a/li ?php } //显示5条? /ul /div
[/e:loop]

复制代码

<?php
if(!$_COOKIE[ecmsmlusername]){
$srr="登录可见";
}else{
$srr="[!--lbsly--]";
}
?>

[!--news.url--]skin/default/

[e:loop={"select classid,classname,bname from phome_enewsclass where classid='$GLOBALS[navclassid]'",1,24,0}]<title><?=$bqr[bname]?></title>[/e:loop]

[e:loop={"select * from phome_enewsclass where classid='$GLOBALS[navclassid]'",1,24,0}]<title><?=$bqr[bname]?></title>[/e:loop]

<?php
$fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]);
$topbclassid=$fcr[1]?$fcr[1]:$GLOBALS[navclassid];//取得当前栏目的顶级栏目ID
$rs=$empire->fetch1("select * from phome_enewsclass where classid=$topbclassid");
?>
_<?=$rs['bname']?>_<?=$public_r[sitename]?> 顶级栏目名称+网站标题

<?=$class_r[$GLOBALS[navclassid]][bname]?> 得到当前栏目的名称
<title>[!--pagetitle--] </title> 或  <title><?=$class_r[$GLOBALS[navclassid]][bname]?></title>
<meta name="keywords" content="[!--pagekey--]" />
<meta name="description" content="[!--pagedes--]" />

isgood=1 一级推荐

firsttitle=1 一级头条

[e:loop={10,3,0,0}] 10当前栏目,3显示条数,

[e:loop={4,1000,0,1,'leib="楼市快讯"','id DESC'}] 1有图片的显示。

[e:loop={"select * from phome_ecms_xtgg where firsttitle=1 order by id DESC limit 20",6,24,0}]

<?=$bqno?> [!--no.num--] 循环序号

<?=$bqsr['titleurl']?> <?=$bqr[title]?> <?=esub($bqr[title],8)?>

[/e:loop]

如果首页改用扩展变量,可以这么做系统-扩展变量-增加一个变量名为title div
class=tab_box
whitebg?php$bclassid=ReturnPublicAddVar(title);//取得栏目id,系统,扩展变量?
div class=tab_buttons ul[e:loop={select classid, classname, classpath
from [!db.pre!]enewsclass where classidin $bclassidorder by myorder
asc ,0,24,0}]?if($bqno==1){?li class=newscurrenta
href=javascrpt::?=$bqr[classname]?/a/li?php}else{? lia
href=javascrpt::?=$bqr[classname]?/a/li?}? [/e:loop] /ul /div div
class=newstab[e:loop={select classid, classname, classpath from
[!db.pre!]enewsclass where classidin $bclassidorder bymyorderasc
,0,24,0}] div class=newsitem div class=newspic
ul?php//这里是取得该分类下的有图片的最新数据$commbook=$empire-query(select
* fromjxhx_ecms_newswhere classid = .$bqr[classid]. and titlepic!=
and isgood=1 order by newstime desc limit
2);$commbookurl=sys_ReturnBqTitleLink($commbook);while($r=$empire-fetch($commbook))
{ ? lia href=?=sys_ReturnBqTitleLink($r)?img
src=?=$r[titlepic]?span?=$r[title]?/span/a/li?php }? /ul /div ul
class=newslist?php//取得该分类下的最新数据 $newbook=$empire-query(select
* from jxhx_ecms_newswhere classid =.$bqr[classid]. order by
newstime desc limit 5); while($r=$empire-fetch($newbook)) { ? lii/ia
href=?=sys_ReturnBqTitleLink($r)?
title=?=$r[title]??=esub($r[title],60,…)?/ap?=$r[smalltext]?/p/li
?php } //显示5条 ? /ul /div [/e:loop] /div /div !–tab_box end–

代码如下:

<?=DoWapRepNewstext($r[newstext])?>

实现效果如图:循环调用扩展变量里面的id号,按照后台顺序排序,myorder,图片调的是头条。列表为5条

<?php
require(‘e/class/connect.php’);      
 //引入数据库配置文件和公共函数文件
require(‘e/class/db_sql.php’);        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类</p>
<p>db_close();                        //关闭MYSQL链接
$empire=null;                        //注消操作类变量
?>

时间调用标签:<?=date(“Y-m-d”,$bqr[‘newstime’])?>

例2:更新数据例子。(b.php)

列表页

复制代码

您当前的位置:[!–newsnav–]

代码如下:

[!–no.num–]

<?php
require(‘e/class/connect.php’);      
 //引入数据库配置文件和公共函数文件
require(‘e/class/db_sql.php’);        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类</p>
<p>$empire->query(“update {$dbtbpre}ecms_news set
onclick=onclick+1”);        //给新闻表的点击数加1</p>
<p>db_close();                        //关闭MYSQL链接
$empire=null;                        //注消操作类变量
?>

[!–show.listpage–]

例3:查询MYSQL数据的例子。(c.php)

内容页

复制代码

[!–info.next–]下一篇 [!–info.pre–]上一篇

代码如下:

万能标签用[!–onclick–] 灵动标签用<?=$bqr[onclick]?> 点击量

<?php
require(‘e/class/connect.php’);      
 //引入数据库配置文件和公共函数文件
require(‘e/class/db_sql.php’);        //引入数据库操作文件
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类</p>
<p>$sql=$empire->query(“select * from {$dbtbpre}ecms_news
order by newstime limit 10”);        //查询新闻表最新10条记录
while($r=$empire->fetch($sql))        //循环获取查询记录
{
       echo”标题:”.$r[‘title’].”
“;
}</p> <p>db_close();                      
 //关闭MYSQL链接
$empire=null;                        //注消操作类变量
?>

复制代码 代码如下:

/e/class/db_sql.php文件中数据库操作类常用的函数说明:

$titleurl=sys_ReturnBqTitleLink($navinfor); 获得当前页面的网址
$url = “http://”.$_SERVER
[‘HTTP_HOST’].$_SERVER[‘PHP_SELF’]; 获得当前页面的网址

1、执行SQL函数:

sql语句

复制代码

复制代码 代码如下:

代码如下:

<?php 
//报名人数 
$num=$empire->gettotal(“select count(*) as total from
phome_enewsfeedback where kft='”.$navinfor[title].”‘”);
?>

$empire->query(“SQL语句”);
$empire->query1(“SQL语句”);

帝国CMS经常用到的调用sql语句:

说明:
执行成功返回true,执行不成功返回false ;
两者区别是:query()出错直接中断程序执行,query1()出错不中断程序执行。

请注意,如果是帝国7.0版本的,需要将checked=1去掉

使用范例:

复制代码 代码如下:

复制代码

  1,根据最新文章 select * from [!db.pre!]ecms_news where
checked=1 order by newstime desc limit 10
  2,根据推荐文章 select * from [!db.pre!]ecms_news where
checked=1 and isgood=1 order by newstime desc limit 10
  3,根据热门文章 select * from [!db.pre!]ecms_news where
checked=1 order by onclick desc limit 10
  4,根据头条新闻 select * from [!db.pre!]ecms_news where
checked=1 and firsttitle=1 order by newstime desc limit 10
  5,根据评论排行 select * from [!db.pre!]ecms_news where
checked=1 order by plnum desc limit 10
  6,根据digg排行 select * from [!db.pre!]ecms_news where
checked=1 order by diggtop desc limit 10
  7,根据投票排行 select * from [!db.pre!]ecms_news where
checked=1 order by votenum desc limit 10
  8,根据下载排行 select * from [!db.pre!]ecms_news where
checked=1 order by totaldown desc limit 10
  9,根据评分排行 select * from [!db.pre!]ecms_news where
checked=1 order by infopfen desc limit 10

代码如下:

小技巧收录:

$sql=$empire->query(“select * from {$dbtbpre}ecms_news”);

php三元条件运算符:

2、循环读取数据库记录函数:

复制代码 代码如下:

复制代码

<?=$bqr[‘ftitle’]?$bqr[‘ftitle’]:$bqr[‘title’]?>

代码如下:

灵动或者php查询调用编辑器内容的时候要加stripslashes删除反斜杠比如:

$empire->fetch($sql)

复制代码 代码如下:

说明:

<?=stripslashes($r[‘newstext’])?>

$sql为query执行SQL返回的结果。

内容页当前信息ID:

使用范例:

复制代码 代码如下:

复制代码

$navinfor[‘id’]

代码如下:

列表内容模板信息ID:

$sql=$empire->query(“select * from {$dbtbpre}ecms_news”);
while($r=$empire->fetch($sql))
{
       echo”标题:”.$r[‘title’].”
“;
}

复制代码 代码如下:

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

$r[‘id’]

复制代码

当前栏目名:

代码如下:

复制代码 代码如下:

$empire->fetch1(“SQL语句”)

$class_r[$GLOBALS[‘navclassid’]][‘classname’];

使用范例:

当前栏目父栏目:

复制代码

复制代码 代码如下:

代码如下:

$class_r[$GLOBALS[‘navclassid’]][‘bclassid’];

$r=$empire->fetch1(“select * from {$dbtbpre}ecms_news where
id=1”);
echo”标题:”.$r[‘title’];

当前栏目别名:

4、统计SQL查询记录数函数:

复制代码 代码如下:

复制代码

$class_r[$GLOBALS[‘navclassid’]][‘bname’];

代码如下:

当前栏目子栏目:

$empire->num(“SQL语句”)
$empire->num1($sql)

复制代码 代码如下:

说明:

$class_r[$GLOBALS[‘navclassid’]][‘sonclass’];

两者的区别是:num()直接写SQL语句,而num1()中的$sql为query执行SQL返回的结果。

当前栏目子判断是否为终级栏目:

使用范例:

复制代码 代码如下:

复制代码

$class_r[$GLOBALS[‘navclassid’]][‘islast’];

代码如下:

当前栏目是否有已审核信息:

$num=$empire->num(“select id from {$dbtbpre}ecms_news”);
echo”新闻表共有 “.$num.” 条新闻”;

复制代码 代码如下:

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

$GLOBALS[‘num’]==0为没有信息

复制代码

帝国cms中引入php路径写法(例子是文件在根目录)

代码如下:

复制代码 代码如下:

$empire->gettotal(“统计SQL语句”);

<?php include(ECMS_PATH.”./bottom.php”);?>

说明:
gettotal()和num()的区别是:gettotal()采用SQL本身的count(*)函数来统计,而num()是采用PHP本身的函数,gettotal()更高效一些。
gettotal()里的统计数一定要as total,如:“count(*) as
total”。

排除置顶、头条、推荐等,sql附加条件:

使用范例:

复制代码 代码如下:

复制代码

‘istop=0 and isgood=0 and firsttitle=0’

代码如下:

上上级栏目id:

$num=$empire->gettotal(“select count(*) as total from
{$dbtbpre}ecms_news”);
echo”新闻表共有 “.$num.” 条新闻”;

<?php
$bclassid=$class_r[$GLOBALS[navclassid]][bclassid];
$bbclassid=$class_r[$bclassid][bclassid];
echo $bbclassid;
?>
$bbclassid就是上上级父栏目id

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

投稿、登陆、反馈、留言等之后跳转指定页面:

复制代码

复制代码 代码如下:

代码如下:

<input type=hidden name=ecmsfrom value=”返回页面地址”>

$empire->lastid()

统计信息被收藏数:

使用范例:

复制代码 代码如下:

复制代码

<?
$favas=$empire->gettotal(“select count(*) as total from
{$dbtbpre}enewsfava where id=’$navinfor[id]’ and
classid=’$GLOBALS[navclassid]'”);
?>
<?=$favas?>就是这条信息的收藏数

代码如下:

列表、结合项判断当前没有信息给出提示:

$empire->query(“insert into {$dbtbpre}ecms_news(title)
values(‘标题’)”);
$lastid=$empire->lastid();
echo”刚插入的信息ID为:”.$lastid;

<?
if($GLOBALS[‘num’]==’0′){
?>
<p>对不起,暂时没有任何信息!</p>
<?
}else{
?>
[!–empirenews.listtemp–]<!–list.var1–>[!–empirenews.listtemp–]
<?
}
?>
[/code]

7、移动SQL查询结果记录指针:

动态使用:

复制代码

网站名称:<?=$public_r[‘sitename’]?>
网站地址:<?=$public_r[‘newsurl’]?>

代码如下:

帝国自身的时间转换函数:

$empire->seek($sql,$pit)

复制代码 代码如下:

说明:
$sql为query执行SQL返回的结果,$pit为指针的偏移数。

<?=format_datetime($bqr[newstime],’Y-m-d’)?>

使用范例:

此函数自带判断,比较不错,推荐。

复制代码

判断内容是否有图片,没有图片则显示文中广告 有图片则不显示:

代码如下:

复制代码 代码如下:

$sql=$empire->query(“select * from {$dbtbpre}ecms_news”);
$empire->seek($sql,2);

<?php
$string=$navinfor[‘newstext’];//内容字段
$some=”<img “;
$num=explode($some,$string);
if(count($num)>1){//判断内容中是否有图片
?>
[!–newstext–]
<?
}else{
?>
<div id=”ad”>我是广告</div>
[!–newstext–]
<?
}
?>

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

截取加过滤标签:

复制代码

复制代码 代码如下:

代码如下:

<?=esub(htmlspecialchars(strip_tags($navinfor[newstext])),160)?>

$empire->free($sql)

内容页或灵动标签支持标题属性
内容页:

www.9778.com ,说明:
$sql为query执行SQL返回的结果。

复制代码 代码如下:

使用范例:

<?=DoTitleFont($navinfor[titlefont],$navinfor[title])?>

复制代码

灵动标签:

代码如下:

复制代码 代码如下:

$sql=$empire->query(“select * from {$dbtbpre}ecms_news”);
$empire->free($sql);

<?=DoTitleFont($bqr[titlefont],$bqr[title])?>

导航查询例子:

标题截取字数+标题属性:

复制代码

复制代码 代码如下:

代码如下:

<?=DoTitleFont($bqr[titlefont],esub($bqr[title],32,’…’))?>

<DIV class=news_dh style=”color:#000000″></p>
<p><!–主栏目导航,此模板中直接指定为classid=69,即法律法规栏目–>
[e:loop={“select classid,classname,classpath from
[!db.pre!]enewsclass where classid=’69’ and  showclass=0  order by
myorder “,0,24,0}]
<span><a
href=”<?=$public_r[newsurl]?><?=$bqr[classpath]?>”
><?=$bqr[classname]?></a></span>   <SPAN><IMG
src=”[!–news.url–]skin/tx/zixun/images/index_line_nav.gif”></SPAN>
[/e:loop]</p> <p> </p>
<p><!–子栏目导航–>
[e:loop={“select classid,classname,classpath from
[!db.pre!]enewsclass where bclassid=’69’ and  showclass=0  order by
myorder “,0,24,0}]
<?
$lanmuclass= “lanmu”;
//echo $bqr[classid] ;
//echo “cur:”.$GLOBALS[navclassid];
if ( $bqr[classid]==$GLOBALS[navclassid]) {
//echo “-“;
$lanmuclass =”curlanmu”;
}
?></p> <p><span
class=”<?=$lanmuclass?>”><a
href=”<?=$public_r[newsurl]?><?=$bqr[classpath]?>”
><?=$bqr[classname]?></a></span>   <SPAN><IMG
src=”[!–news.url–]skin/tx/zixun/images/index_line_nav.gif”></SPAN></p>
<p>[/e:loop]</p> <p>
<!–新闻导航结束–>
</DIV>