好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

dedecms {dede:sql}标签用法详解

本教程讲解dedecms {dede:sql}标签用法详解

功能说明:用于从模板中用一个SQL查询获得其返回内容

适用范围:全局使用

基本语法:

 

{dede:sql sql=""}底层模板{/dede:sql}

调用列表

 

{dede:sql sql="select  * From dede_archives  limit 10"} <li>&middot;<a href="/plus/view.php?aid=[field:id/]">[field:title/]</a></li> {/dede:sql}

 

1.调用某个特定会员发布的文章内容

 

{dede:sql sql='Select * from dede_archives where mid=1'} <a href='/plus/view.php?aid=[field:id/]' target='_blank'>[field:title/]</a> {/dede:sql}

mid为用户ID可以参考二次开发中关于dede_archives的数据表字段介绍

下面我们再来详细的看看{dede:sql}标签其它实例

 

<div class="hot mt1">        <dl class="tbox">          <dt><strong>⊙下载排行</strong></dt>          <dd>            <ul class="c1 ico2">{dede:sql sql="select a.id as aid,a.typeid,a.title,a.pubdate,d.id as did,d.downloads from mo_archives as a,mo_downloads as d where a.id = d.id and a.arcrank=0 and a.typeid!= 15 and a.typeid != 44 and (UNIX_TIMESTAMP()-a.pubdate)/3600/24 BETWEEN 0 AND 15 order by d.downloads desc limit 0,10;"}                <li>                  <a title="[field:title /]" href="[field:aid function=GetinfoUrl(@me,10) /]">[field:title function='cn_substr(@me,26)'/]</a> -下载数:<font color='red'>[field:downloads/]</font></li> {/dede:sql}            </ul>          </dd>        </dl>      </div>

首页调用文章正文内容,比较好的解决方法:

方法一:

 

{dede:sql sql="SELECT aid,typeid,body,body1,body2,body3,body4,body5 FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0,1"} [field:body /] [field:body1 /] [field:body2 /] [field:body3 /] [field:body4 /] [field:body5 /] {/dede:sql}

方法二:

 

{dede:sql sql="SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0,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 = &ldquo;SELECT count(*) FROM js_archives WHERE writer = &lsquo;开发建设科&rsquo;&rdquo;;         $result = mysql_query($sql);         $row = mysql_fetch_row($result);         $amount = $row[0];         /*计算总页数         if($amount){             if($amount<$PageSize) {                 $PageCount = 1;             }             if($amount%$PageSize) { //总数量除以每页的记录数量取于                 $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1             }             else{                 $PageCount =& amp;nbsp;$amount/$PageSize;//没有,则结果是页数             }         }         else{             $PageCount = 0;         }*/         $PageCount = ceil($amount/$PageSize);//总页数=总数量除以每页数量  如果有小树,则进位< span style=&rdquo;color: #008000;&rdquo;>         if($Page>$PageCount|$page==0){// 如果当前页数大于总页数             echo &ldquo;不能发现此页!&rdquo;;             exit();         }                //翻页链接         $PageOut = &rdquo;;         if($page==1){//如果页数只有一页                      $PageOut .= &lsquo;第一页|上一页&rsquo;;         }         else{             $PageOut .= &lsquo;<a href=&rdquo;/plus/list.php?tid=30&page=1&Prime;>第一页</a>|<a href=&rdquo;/plus/list.php?tid=30&page=&rsquo;.($page-1).&rsquo;&rdquo;>上一页</a>|&rsquo;;         }         if($page==$PageCount||$PageCount==0){//如果当前页等于总也数             $PageOut .= &lsquo;下一页|尾页&rsquo;;         }         else{             $PageOut .=  &lsquo;<a href=&rdquo;/plus/list.php?tid=30&page=&rsquo;.($page+1).&rsquo;&rdquo;>下一页</a>|<a href=&rdquo;/plus/list.php&tid=30?page=&rsquo;.$PageCount.&rsquo;&rdquo;>尾页</a>&rsquo;;         }         //获取数据         if($amount){         $sql=&rdquo;select * FROM js_archives WHERE writer = &lsquo;开发建设科&rsquo; limit &ldquo;.($page-1)*($PageSize).&rdquo;,$PageSize&rdquo;;                  $result=mysql_query($sql);         while($row=mysql_fetch_array($result)){//此段代码只是示例                     $blogs[] = array(&lsquo;id&rsquo;=>$row['id'],&rsquo;title&rsquo;=>$row['title']);             foreach ($blogs as $blog){             $title=$blog['title'];             $id=$blog['id'];                         echo <<< EOT                  <tr><td width=&rdquo;550&Prime;><p><a href=&rsquo;/plus/view.php?aid=$id&rsquo; target=&rsquo;_blank&rsquo;>$title</a></td></tr> EOT; unset($blogs);             }                                  }         for($i=1;$i<=$PageCount;$i++){//数字分页            $Pageshow = ($i!=$page)?&rdquo;<a href=&rsquo;/plus/list.php?tid=30?page=&rdquo;.$i.&rdquo;&lsquo;>$i</a>&rdquo;:&rdquo;<b>$i</b>&rdquo;;            echo $PageShow;          }          echo $amount.&rsquo;条记录,每页&rsquo;.$PageSize.&rsquo;条,共&rsquo;.$PageCount.&rsquo;页&rsquo;;         }                  echo $PageOut;  {/dede:php}    根据自己的情况 把SQL写上 然后把 list.php 里的   if($lv->IsError) {  //ParamError(); }

查看更多关于dedecms {dede:sql}标签用法详解的详细内容...

  阅读:47次