原文来自:https://www.zixuephp.com
本教程讲解dedecms {dede:sql}标签用法详解
功能说明:用于从模板中用一个SQL查询获得其返回内容
适用范围:全局使用
基本语法:
{dede:sqlsql=""}底层模板{/dede:sql}
调用列表
{dede:sqlsql="select*Fromdede_archiveslimit10"} <li>·<ahref="/plus/view.php?aid=[field:id/]">[field:title/]</a></li> {/dede:sql}
1.调用某个特定会员发布的文章内容
{dede:sqlsql='Select*fromdede_archiveswheremid=1'} <ahref='/plus/view.php?aid=[field:id/]'target='_blank'>[field:title/]</a> {/dede:sql}
mid为用户ID可以参考二次开发中关于dede_archives的数据表字段介绍
下面我们再来详细的看看{dede:sql}标签其它实例
<divclass="hotmt1"> <dlclass="tbox"> <dt><strong>⊙下载排行</strong></dt> <dd> <ulclass="c1ico2">{dede:sqlsql="selecta.idasaid,a.typeid,a.title,a.pubdate,d.idasdid,d.downloadsfrommo_archivesasa,mo_downloadsasdwherea.id=d.idanda.arcrank=0anda.typeid!=15anda.typeid!=44and(UNIX_TIMESTAMP()-a.pubdate)/3600/24BETWEEN0AND15orderbyd.downloadsdesclimit0,10;"} <li> <atitle="[field:title/]"href="[field:aidfunction=GetinfoUrl(@me,10)/]">[field:titlefunction='cn_substr(@me,26)'/]</a>-下载数:<fontcolor='red'>[field:downloads/]</font></li> {/dede:sql} </ul> </dd> </dl> </div>
首页调用文章正文内容,比较好的解决方法:
方法一:
{dede:sqlsql="SELECTaid,typeid,body,body1,body2,body3,body4,body5FROM`dede_addonarticle`wheretypeid=2ORDERBY`aid`DESCLIMIT0,1"} [field:body/][field:body1/][field:body2/][field:body3/][field:body4/][field:body5/] {/dede:sql}
方法二:
{dede:sqlsql="SELECTaid,typeid,bodyFROM`dede_addonarticle`wheretypeid=2ORDERBY`aid`DESCLIMIT0,1"} [field:body/] {/dede:sql}
调用说明:
其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成 aid=1 则表示调用的 aid 为 1 的文章,
DESC 表示排序,按从大到小排,换成 ASC 则按从小到大排序,
LIMIT 0,1 表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量。
dede sql 标签 取出来的列表 实现分页
{dede:php} //获取当前页数 if(isset($_GET['page'])){ $page=intval($_GET['page']); } else{ $page=1; } $PageSize=3;//每页的记录数量 //获取总数量 $sql=“SELECTcount(*)FROMjs_archivesWHEREwriter=‘开发建设科’”; $result=mysql_query($sql); $row=mysql_fetch_row($result); $amount=$row[0]; /*计算总页数 if($amount){ if($amount<$PageSize){ $PageCount=1; } if($amount%$PageSize){//总数量除以每页的记录数量取于 $PageCount=&nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1 } else{ $PageCount=&nbsp;$amount/$PageSize;//没有,则结果是页数 } } else{ $PageCount=0; }*/ $PageCount=ceil($amount/$PageSize);//总页数=总数量除以每页数量如果有小树,则进位<spanstyle=”color:#008000;”> if($Page>$PageCount|$page==0){//如果当前页数大于总页数 echo“不能发现此页!”; exit(); } //翻页链接 $PageOut=”; if($page==1){//如果页数只有一页 $PageOut.=‘第一页|上一页’; } else{ $PageOut.=‘<ahref=”/plus/list.php?tid=30&page=1″>第一页</a>|<ahref=”/plus/list.php?tid=30&page=’.($page-1).’”>上一页</a>|’; } if($page==$PageCount||$PageCount==0){//如果当前页等于总也数 $PageOut.=‘下一页|尾页’; } else{ $PageOut.=‘<ahref=”/plus/list.php?tid=30&page=’.($page+1).’”>下一页</a>|<ahref=”/plus/list.php&tid=30?page=’.$PageCount.’”>尾页</a>’; } //获取数据 if($amount){ $sql=”select*FROMjs_archivesWHEREwriter=‘开发建设科’limit“.($page-1)*($PageSize).”,$PageSize”; $result=mysql_query($sql); while($row=mysql_fetch_array($result)){//此段代码只是示例 $blogs[]=array(‘id’=>$row['id'],’title’=>$row['title']); foreach($blogsas$blog){ $title=$blog['title']; $id=$blog['id']; echo<<<EOT <tr><tdwidth=”550″><p><ahref=’/plus/view.php?aid=$id’target=’_blank’>$title</a></td></tr> EOT; unset($blogs); } } for($i=1;$i<=$PageCount;$i++){//数字分页 $Pageshow=($i!=$page)?”<ahref=’/plus/list.php?tid=30?page=”.$i.”‘>$i</a>”:”<b>$i</b>”; echo$PageShow; } echo$amount.’条记录,每页’.$PageSize.’条,共’.$PageCount.’页’; } echo$PageOut; {/dede:php} 根据自己的情况把SQL写上然后把list.php里的 if($lv->IsError) { //ParamError(); }