1. dedecms sql分页的问题,页面无数据。
从新加载
2. 织梦搭建博客,首页不能分页怎么解决
织梦DEDECMS模板网站首页如何实现首页分页和翻页
方法如下:(三种方法,自己选择一种来实现分页吧)
第一种:调用ajax和参数的(不推荐)1、必须在DEDE首页模板中的<head></head>中引入(详细看你的默认模板)
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
2、必须加入
<script>
function multi(pagenum,tagid) { var taget_obj = document.getElementById(tagid); var taget_obj_page = document.getElementById("page_"+tagid); myajax = new DedeAjax(taget_obj,false,false,'','',''); myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid); myajax = new DedeAjax(taget_obj_page,false,false,'','',''); myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid); DedeXHTTP = null; } </script>
3.在arclist标签中必须含有tagid与pagesize参数。 第一个是缓存名,第二个是单页条数。
{dede:arclist tagid='index' pagesize='5'} <li><b><a href="[field:arcurl/]" style="color: #FF6633">[field:title/]</a></b></li> <p class="my_tj_info">[field:info/]...</p> {/dede:arclist} 本文来自织梦模板团
4、必须存在arcpagelist标签,且必须声明缓存参数tagid且缓存参数与arclist中tagid保持一致
{dede:arcpagelist tagid='index'/}
此方法的优缺点:优点:可以很方便的在首页进行索引全站最新更新文档。缺点:是ajax调用的,所以没有办法索引第二页后面的内容。也就是你的分页超过2页,第三页就没办法索引,所以放弃了此方法。很不推荐
第二种:交叉栏目ID 实现dedecms首页分页(比较简单,不是很推荐)1、首先你在后台新建一个"首页"的的栏目
2、设置首页栏目
3、模板就直接用列表模板就可以了,如果你技术好的话,可以设计成自己想要的模板。
4、主要注意几点:(1)交叉的id只能写最后一级的栏目id,就是你文章的隶属栏目id;(2)更新不能用首页更新要用 更新栏目HTML 首页链接地址还是不变。
5、可以实现了。
第三种方法:自由列表实现dedecms首页分页。(推荐)1、进入后台 核心---》频道模型--》自由列表管理---》添加列表。2、就是定义自由列表:(注:我们是为了首页分页所以列表HTML必须存放目录否则无法显示,所以只保留{cmspath})
用此方法实现首页分页,模板只能用首页模板。也就是说后台中的更新首页HTML功能就废了,以后一键生成网站以后要到自由列表中去生成一次。否则网站首页为空白。
不过用dedecms自由列表功能来实现首页分页有个麻烦的问题,就每次生成之前都要更改一次<不使用默认首页>当然这里对于其他地方需要自由列表影响不大,但是我们要是用自由列表实现首页分页就麻烦了。解决方法如下:打开Dede(默认后台管理目录)目录下的makehtml_freelist_action.php (创建自由列表)找到
$dsql->ExecuteNoneQuery("Update `dede_freelist` set nodefault='1' where aid='$startid';");找到上面代码行,在前面加上// 注释掉就可以了。
模板居织梦模板
为您解答
祝你成功
望采纳
3. DEDECMS sql调用分页问题
你很会问,这个问题确实难点~
loop调用网上没找到,sql调用找到了分页的方法
网络:“ dedecms sql分页”会出现一些结果,其中有让修改include里面源文件那个就是了
按上面写的操作,一步一步的仔细点,就可以实现了,----我的经验
4. 做了一个dedecms的列表页面,用loop或sql从数据库中读取数据,我想要分页显示,比如一页显示9个,如何做
<?php
function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){
$pagecode = ’’;//定义变量,存放分页生成的HTML
$page = intval($page);//避免非数字页码
$total = intval($total);//保证总记录数值类型正确
if(!$total) return array();//总记录数为零返回空数组
$pages = ceil($total/$pagesize);//计算总分页
//处理页码合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//计算查询偏移量
$offset = $pagesize*($page-1);
//页码范围计算
$init = 1;//起始页码数
$max = $pages;//结束页码数
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量
//生成html
$pagecode=’<div class="page">’;
$pagecode.="<span>$page/$pages</span>";//第几页,共几页
//如果是第一页,则不显示第一页和上一页的连接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
}
//分页数大于页码个数时可以偏移
if($pages>$pagelen){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.=’<span>’.$i.’</span>’;
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
}
$pagecode.=’</div>’;
return array(’pagecode’=>$pagecode,’sqllimit’=>’ limit ’.$offset.’,’.$pagesize);
}
?>
5. 织梦 dedecms{dede:sql} 问题 在线等
试试:
select
*
from
dede_archives
order
by
id
desc
limit
0,9
这个就是取新闻列表的前9条。
如果是想分页,试试dedecms的内置标签:arcpagelist
示例如下:
名称:arcpagelist
功能:通过制定arclist的pagesize及tagid属性,配合arcpagelist标签进行内容当前分页中显示,DedeCMS
5.8中将取消这个标签的使用
<ul class="c1 ico2">
{dede:arclist flag='c' titlelen=42 row='16' tagid='dedecms' pagesize='8'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>{/dede:arclist}
</ul>
<div>{dede:arcpagelist tagid='dedecms'/}</div>
文件:
\include\taglib\arcpagelist.lib.php
lib_arcpagelist(&$ctag,
&$refObj)
默认底层模板:
无
参数:
tagid=''
对应arclist的标签名称
底层字段:
无
更多内容请网络:arcpagelist
6. dede:sql怎么分页
sql只查询索引,分页要另外来做你看看dedecms程序的分页处理不就行了
7. 织梦dede中的sql标签查询结果怎么分页
这个我也在纠结,不过听说可以修改一下SQL的标签类来解决,就是在SQL的标签里添加分页类,网上也有介绍,但没制作成功,希望精通PHP的朋友改造一下。
8. 织梦dede:sql语句在内容页调用列表时怎么分页
我们可以另外嵌入一个类似{dede:listsql sql='select * from wp_posts' pagesize='10'}的标签来使用。
OK,思路已经有了,接下来我们打开include/arc.listview.class.php这个文件来给它动个小手术吧!
找到:
if(!is_object($ctag)) { $ctag = $this->dtp->GetTag("list"); }
这一段,在其后添加如下代码:
if(!is_object($ctag)) { $ctag = $this->dtp->GetTag("listsql"); if (is_object($ctag)) { $cquery = $ctag->GetAtt("sql"); $cquery = preg_replace("/SELECT(.*?)FROM/is", " SELECT count(*) as dd FROM ", $cquery); $cquery = preg_replace("/ORDER(.*?)SC/is", "", $cquery); $row = $this->dsql->GetOne($cquery); if(is_array($row)) { $this->TotalResult = $row['dd']; } else { $this->TotalResult = 0; } } } //end
然后找到:
if($ctag->GetName()=="list") { $limitstart = ($this->PageNo-1) * $this->PageSize; $row = $this->PageSize; if(trim($ctag->GetInnerText())=="") { $InnerText = GetSysTemplets("list_fulllist.htm"); } else { $InnerText = trim($ctag->GetInnerText()); } $this->dtp->Assign($tagid, $this->GetArcList( $limitstart, $row, $ctag->GetAtt("col"), $ctag->GetAtt("titlelen"), $ctag->GetAtt("infolen"), $ctag->GetAtt("imgwidth"), $ctag->GetAtt("imgheight"), $ctag->GetAtt("listtype"), $ctag->GetAtt("orderby"), $InnerText, $ctag->GetAtt("tablewidth"), $ismake, $ctag->GetAtt("orderway") ) ); }
这一段,在其后添加如下代码:
else if($ctag->GetName()=="listsql") { $limitstart = ($this->PageNo-1) * $this->PageSize; $row = $this->PageSize; if(trim($ctag->GetInnerText())=="") { $InnerText = GetSysTemplets("list_fulllist.htm"); } else { $InnerText = trim($ctag->GetInnerText()); } $this->dtp->Assign($tagid, $this->GetSqlList( $limitstart, $row, $ctag->GetAtt("sql"), $InnerText ) ); } //end
最后找到function GetArcList这个方法,在其后添加一个可以通过传入sql参数获取指定数据源的方法,代码如下:
/** * 通过listsql标签中sql属性传入的参数来获得一个单列的文档列表 * */ function GetSqlList($limitstart = 0, $row = 10, $sql = '', $innertext){ global $cfg_list_son; $innertext = trim($innertext); if ($innertext == '') { $innertext = GetSysTemplets('list_fulllist.htm'); } //处理SQL语句 $limitStr = " LIMIT {$limitstart},{$row}"; $this->dsql->SetQuery($sql . $limitStr); $this->dsql->Execute('al'); $t2 = ExecTime(); //echo $t2-$t1; $sqllist = ''; $this->dtp2->LoadSource($innertext); $GLOBALS['autoindex'] = 0; //获取字段 while($row = $this->dsql->GetArray("al")) { $GLOBALS['autoindex']++; if(is_array($this->dtp2->CTags)) { foreach($this->dtp2->CTags as $k=>$ctag) { if($ctag->GetName()=='array') { //传递整个数组,在runphp模式中有特殊作用 $this->dtp2->Assign($k,$row); } else { if(isset($row[$ctag->GetName()])) { $this->dtp2->Assign($k,$row[$ctag->GetName()]); } else { $this->dtp2->Assign($k,''); } } } } $sqllist .= $this->dtp2->GetResult(); }//while $t3 = ExecTime(); //echo ($t3-$t2); $this->dsql->FreeResult('al'); return $sqllist; } //end
总共就添加三段代码,每一段代码基本都参考它紧接着的上面那段原始代码,而无需改变它原来任何一个地方的代码,应该算是比较完美的手术了,接下来在模板文件中的使用方法就跟一开始思路中所提到的那样,分页标签依旧沿用原来的,调用范例:
{dede:listsql sql='select ID,post_title from wp_posts' pagesize='10'} <li><a href="http://ys21426.blog.163.com/[field:ID /].html">[field:post_title /]</a></li> {/dede:listsql} <!--分页--> {dede:pagelist listsize='2' listitem='index pre pageno next end '/}
9. {dede:sql}{/dede"sql}怎么使用分页高手请帮忙!难到没有一个人知道吗
崩溃了
10. dedecms通过sql随机调用数据后,如何分批输出
看你的sql命令,是要调取dede的友情链接,看了下有2中解决方法
1,用dede友情链接分类的功能,也就是后台友情链接中的类型管理,然后调取的时候
{dede:flinkrow='24'type='text'titlelen="24"typeid="0"}
[field:link/]
{/dede:flink}
其中:typeid="0" 代表调取所有类型的链接,这里你可以根据你的需要修改,跟后台网站类型id相对应。
2,就是把你的代码修改一下就可以了
{dede:sqlsql="select*fromdede_flinkorderbyrand()limit0,2"}
[field:webname/]
{/dede:sql}
limit 0,2 这个的意思就是从0开始调取2个数据,以此类推。
根据你的需求是分4次输出,那就是
{dede:sqlsql="select*fromdede_flinkorderbyrand()limit0,2"}
[field:webname/]
{/dede:sql}
{dede:sqlsql="select*fromdede_flinkorderbyrand()limit2,2"}
[field:webname/]
{/dede:sql}
{dede:sqlsql="select*fromdede_flinkorderbyrand()limit4,1"}
[field:webname/]
{/dede:sql}
{dede:sqlsql="select*fromdede_flinkorderbyrand()limit5,1"}
[field:webname/]
{/dede:sql}
应该就是这样了,你试试!