Php连接数据库获取新闻列表的代码
比如我们在首页需要调用指定栏目ID为6的栏目下的文章,而该栏目下有一个ID为12的子栏目,通常我们在首页的调用代码如下:
<ul>
{dede:arclist typeid='8' row='10' col='1' orderby='hot'}
<li><a href='[field:arcurl/]'>[field:shorttitle/]</a></li>
{/dede:arclist}
</ul>
但是调用后,此栏目下的ID为12的子栏目里面的内容也会出现在列表里,如果不想要子栏目的内容出现在列表里很简单,这个在后台就有设置,具体设置如下:
登录织梦管理后台,在“系统基本参数”——“性能选项”——“上级列表是否包含子类内容:”这个选项选择“否”就行了。
当然这个是有前提的,这个只能说是调用列表页,如果你调用的栏目是封面页,那么肯定会取子栏目的数据,如果你调用的是列表页,那么肯定是可以的。
DedeCMS(织梦内容管理系统)是织梦团队开发的一套网站管理系统(CMS)。
这个系统把一个网站的内容(文字,,等等)与网站的组件分离开来,可以将各个页面连接到一起,可以控制页面的显示。通过这个系统,可以方便的管理,发布,维护网站的内容,而不再需要硬性的写HTML代码或手工建立每一个页面。
如果你直接用dede的arclist循环调用某个栏目的列表,那么第一条与第二条必定样式相同,如果你真想实现同一列表2个样式,那就得分开做,如:
{dede:arclist row='1' orderby='pubdate' orderway='desc' ……其他参数,确保排序相同}
第一条信息………………
{/dede:arclist}
{dede:arclist row='X' orderby='pubdate' orderway='desc' limit='1,X' ……其他参数,X为第二个列的数量}
第二条以后的信息………………
第二条以后的信息………………
第二条以后的信息………………
X次
{/dede:arclist}
<php
$conn = mysql_connect ( "localhost", "root", "" );
mysql_select_db ( "bookdb" );
mysql_query ( "set names gbk" );
$sql = "select from book;";
$rs = mysql_query ( $sql );
>
<html>
<style type="text/css">
{
font-family: "宋体";
fony-size: 12px
}
;
tbhead {
background-color: #698CC3;
border: 1px solid #FFFFFF;
color: #FFFFFF;
font-weight: 800;
}
;
tbleft {
border: 1px dashed #698CC3;
background-color: #EFEFEF;
}
;
tbright {
background-color: #FFFFFF;
border: 1px dashed #698CC3;
}
;
</style>
<body bgcolor="#9ac5b5">
<h1 align="center">所有书籍信息</h1>
<table style="border: 1px dashed #698CC3; width: 100%; line-height: 200%;"
cellpadding="0px" cellspacing="0px">
<tr>
<td align="right" colspan="7" class="tbhead"><a href="addphp">添加书籍</a></td>
</tr>
<tr>
<th class="tbleft">编号</th>
<th class="tbleft">书名</th>
<th class="tbleft">出版社</th>
<th class="tbleft">出版时间</th>
<th class="tbleft">操作</th>
</tr>
<php
while ( $arr = mysql_fetch_array ( $rs ) ) {
echo "<tr align='center'>";
echo "<td class='tbright'>" $arr ["bid"] "</td>";
echo "<td class='tbright'>" $arr ["bname"] "</td>";
echo "<td class='tbright'>" $arr ["bcbs"] "</td>";
echo "<td class='tbright'>" $arr ["btime"] "</td>";
echo "<td class='tbright'><a href='delphpbid=" $arr ["bid"] "'>删除</a> <a href='updatephpbid=" $arr ["bid"] "'>修改</a></td>";
echo "</tr>";
}
mysql_free_result ( $rs );
mysql_close ( $conn );
>
</table>
</body>
</html>
DEDE整站生成静态的时候,首页、列表页、文章内容页都是生成HTML,当文档页面刷新的时候,点击次数是不变的,需要重新生成页面。经过分析dede内容页的field标签,解决方案如下:
。
JS解决办法:({dede:fieldclick/}这个不能实时刷新,要使用JS调用。)
内容页调用方法:在DEDE里面有一个php文件是专门用来统计点击次数的,这个文件叫countphp,我们只需要给它传递一些参数就可以获得文章的点击次数,调用的方式也是用JS来调用,这段代码大家也不需要去记,只要在用的时候复制进去就可以。
这是文章页调用文章点击次数,{dede:field name='id'/}是文章ID。
列表页和首页调用方法:在列表页和首页你可以在循环里面使用[fieldid /]获取,mid是发帖人,一般都是用admin帐号发文章,所以一般都是1。因为在list列表中不能有{},所以你就写实际地址:
这样,首页和列表页的点击次数也就能够像文章内容页一样实时点击刷新了,尤其适合博客
{dede:fieldclick/}只能在文章页调用,且是静态数值,手动更新文章这个阅读数才会更新。
列表页动态更新阅读数调用:
<script src="/plus/countphpview=yes&aid=[field:id/]&mid=1" type='text/javascript' language="javascript"></script>
列表页调用文章关键词:
[field:id runphp=yes]
global $dsql;
$tags = '';
$query = "SELECT keywords FROM `dede_archives` WHERE id='@me' ";
$dsql->Execute('keywords',$query);
while($row = $dsql->GetArray('keywords'))
{
$keywords1=$row['keywords'];
}
@me=$keywords1;
[/field:id]
dedecms 网站调用导航栏目和下拉菜单的方法如下:
织梦开源程序(dedecms)是一个很不错的开源程序,功能十分的强大,只是默认的模板就有很不错的用户体验效果。而还有很多的不完美的地方,就需要我们自己去做一下修改,譬如默认导航条上面没有下拉列表的功能,今天我就来帮助大家解决一下怎样制作织梦导航下拉列表。
其实这个导航条上面显示下拉列表还是蛮简单的,即使你不懂代码知识也是可以操作的,下面跟着步骤走,就能很轻松的实现啦。
首先我们将将下面这段红色的代码贴到"网站根目录\templets\default\"的"footerhtm"文件里里面,一般来说把这段代码放在最下面就行了。
<!-- //放于底部即可-->
<script type='text/javascript' src='{dede:globalcfg_cmsurl/}/images/js/dropdownjs'></script>
{dede:channelartlist typeid='top' cacheid='channelsonlist'}<ul id="dropmenu{dede:fieldtypeid/}" class="dropMenu">
{dede:channel type='son' noself='yes'} <li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
<script type="text/javascript">cssdropdownstartchrome("navMenu")</script>
接着我们重新生成网站首页,再打开首页刷新一下就会发现你的网站导航栏已经出现下拉菜单了,只是背景还是透明的,原因是没有背景。这时候我们只需要再加一张我们喜欢的背景就好看多了。
可是头疼的是,这个下拉菜单是透明的!咋么办??
加背景的办法
我们把织梦DedeCMS程序文件夹\dede\img里的mmenubggif(绿色背景,适用于绿色主题模板)或者DedeCMS程 序文件夹\templets\images里的mmenubggif(蓝色背景,适用于蓝色主题模板)复制到DedeCMS程序文件夹 /templets/default/images下面,现在你再看一下效果,导航栏是不是已经出现熟悉的下拉菜单了。
如果还想有更好的效果展示的话,我们就需要去手工修改/templets/default/style/dedecmscss里面的文件了,不过这得需要一点css知识哦~
修改css的话,我们可以在里面使用"ctrl+f"寻找 dropMenu 进行修改即可。
参考dedecms的帮助文档中的arclist标签
标签名称:arclist
标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。
功能说明:获取指定文档列表
适用范围:全局使用
基本语法:
{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclist}
参数说明:
col='' 分多少列显示(默认为单列),53版中本属性可以通过多种方式进行多行显示
如果col='1'要多列显示的可用div+css实现
以下为通过div+css实现多列的示例:
<style type=text/css>
div{width:400px;float:left;}
</style>
{dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'}
•[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/>
{/dede:arclist}
当col>1将使用原来的table多列方式显示
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;
getall='1' 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型 image含有缩略图 commend推荐
orderby='sortrank' 文档排序方式
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
§ orderby='near'
§ orderby=='lastpost' 按最后评论时间
§ orderby=='scores' 按得分排序
§ orderby='id' 按文章ID排序
§ orderby='rand' 随机获得指定条件的文档列表
keyword='' 含有指定关键字的文档列表,多个关键字用","分
innertext = '' 单条记录样式
aid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid 频道ID
limit='起始ID,记录数' (起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记录开始,取2条记录)
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档
用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
底层模板字段:
ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,
source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,
description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,
stime(pubdate 的"0000-00-00"格式)
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'}
[field:textlink/]
<br>
[field:infos/]
<br>
{/dede:arclist}
注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes']
$ntime = time();
$oneday = 3600 24;
if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";
else @me = "";
[/field:senddate]
0条评论