当前位置:首页 > CMS教程 > DeDecms > 列表

dedecms {dede:sql}标签用法介绍

发布:smiling 来源: PHP粉丝网  添加日期:2015-03-24 15:03:33 浏览: 评论:0 

本文章从头到尾讲述了关于dedecms 的dede sql标签的用法与各种实例,有需要的同学朋友可以参考一下这个标签.

先来看官方的说明

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

适用范围:全局使用

基本语法:{dede:sql sql=""}底层模板{/dede:sql}

调用列表,代码如下:

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

1.调用某个特定会员发布的文章内容,代码如下:

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

mid为用户ID可以参考二次开发中关于dede_archives的数据表字段介绍,下面我们再来详细的看看{dede:sql}标签其它实例,代码如下:

  1. <div class="hot mt1"
  2.        <dl class="tbox"
  3.          <dt><strong>⊙下载排行</strong></dt> 
  4.          <dd> 
  5.            <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;"
  6.                <li> //开源软件:phpfensi.com 
  7.                  <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> 
  8. {/dede:sql} 
  9.            </ul> 
  10.          </dd> 
  11.        </dl> 
  12.      </div> 

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

方法一:代码如下:

  1. {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"
  2. [field:body /] [field:body1 /] [field:body2 /] [field:body3 /] [field:body4 /] [field:body5 /] 
  3. {/dede:sql} 

方法二:代码如下:

  1. {dede:sql sql="SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0,1"
  2. [field:body /] 
  3. {/dede:sql} 

调用说明:

其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成 aid=1 则表示调用的 aid 为 1 的文章,DESC 表示排序,按从大到小排,换成 ASC 则按从小到大排序,LIMIT 0,1 表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量.

dede sql 标签 取出来的列表 实现分页,代码如下:

  1. {dede:php} 
  2.          
  3.         //获取当前页数 
  4.         if(isset($_GET['page'])){ 
  5.             $page = intval($_GET['page']); 
  6.         } 
  7.         else { 
  8.             $page=1; 
  9.         } 
  10.         $PageSize = 3; //每页的记录数量 
  11.         // 获取总数量 
  12.          
  13.         $sql = “SELECT count(*) FROM js_archives WHERE writer = ‘开发建设科’”; 
  14.         $result = mysql_query($sql); 
  15.         $row = mysql_fetch_row($result); 
  16.         $amount = $row[0]; 
  17.         /*计算总页数 
  18.         if($amount){ 
  19.             if($amount<$PageSize) { 
  20.                 $PageCount = 1; 
  21.             } 
  22.             if($amount%$PageSize) { //总数量除以每页的记录数量取于 
  23.                 $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,则页数等于总数量除每页的记录数加1 
  24.             } 
  25.             else{ 
  26.                 $PageCount =& amp;nbsp;$amount/$PageSize;//没有,则结果是页数 
  27.             } 
  28.         } 
  29.         else{ 
  30.             $PageCount = 0; 
  31.         }*/ 
  32.         $PageCount = ceil($amount/$PageSize);//总页数=总数量除以每页数量  如果有小树,则进位< span style=”color: #008000;”> 
  33.         if($Page>$PageCount|$page==0){// 如果当前页数大于总页数 
  34.             echo “不能发现此页!”; 
  35.             exit(); 
  36.         } 
  37.        
  38.         //翻页链接 
  39.         $PageOut = ”; 
  40.         if($page==1){//如果页数只有一页 
  41.          
  42.             $PageOut .= ‘第一页|上一页’; 
  43.         } 
  44.         else
  45.             $PageOut .= ‘<a href=”/plus/list.php?tid=30&page=1″>第一页</a>|<a href=”/plus/list.php?tid=30&page=’.($page-1).’”>上一页</a>|’; 
  46.         } 
  47.         if($page==$PageCount||$PageCount==0){//如果当前页等于总也数 
  48.             $PageOut .= ‘下一页|尾页’; 
  49.         } 
  50.         else
  51.             $PageOut .=  ‘<a href=”/plus/list.php?tid=30&page=’.($page+1).’”>下一页</a>|<a href=”/plus/list.php&tid=30?page=’.$PageCount.’”>尾页</a>’; 
  52.         } 
  53.         //获取数据 
  54.         if($amount){ 
  55.         $sql=”select * FROM js_archives WHERE writer = ‘开发建设科’ limit “.($page-1)*($PageSize).”,$PageSize”; 
  56.          
  57.         $result=mysql_query($sql); 
  58.         while($row=mysql_fetch_array($result)){//此段代码只是示例 
  59.         
  60.             $blogs[] = array(‘id’=>$row['id'],’title’=>$row['title']); 
  61.             foreach ($blogs as $blog){ 
  62.             $title=$blog['title']; 
  63.             $id=$blog['id']; 
  64.             
  65.             echo <<< EOT 
  66.                  <tr><td width=”550″><p><a href=’/plus/view.php?aid=$id’ target=’_blank’>$title</a></td></tr> 
  67. EOT; 
  68. unset($blogs); 
  69.             } 
  70.             
  71.              
  72.         } 
  73.         for($i=1;$i<=$PageCount;$i++){//数字分页 
  74.            $Pageshow = ($i!=$page)?”<a href=’/plus/list.php?tid=30?page=”.$i.”‘>$i</a>”:”<b>$i</b>”; 
  75.            echo $PageShow
  76.          } //开源软件:phpfensi.com 
  77.          echo $amount.’条记录,每页’.$PageSize.’条,共’.$PageCount.’页’; 
  78.         } 
  79.          
  80.         echo $PageOut
  81.  {/dede:php} 

根据自己的情况 把SQL写上,然后把 list.php 里的,代码如下:

  1. if($lv->IsError) 
  2.  //ParamError(); 
  3. }

Tags: dedecms标签 dede:sql标签

分享到: