先来看官方的说明
功能说明:用于从模板中用一个SQL查询获得其返回内容
适用范围:全局使用
基本语法:
代码如下 |
复制代码 |
{dede:sql sql=""}底层模板{/dede:sql} |
调用列表
1.调用某个特定会员发布的文章内容
代码如下 |
复制代码 |
{dede:sql sql='Select * from dede_archives where mid=1'}
[field:title/]
{/dede:sql}
|
mid为用户ID可以参考二次开发中关于dede_archives的数据表字段介绍
下面我们再来详细的看看{dede:sql}标签其它实例
代码如下 |
复制代码 |
- ⊙下载排行
{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;"}
[field:title function='cn_substr(@me,26)'/] -下载数:[field:downloads/]
{/dede:sql}
|
首页调用文章正文内容,比较好的解决方法:
方法一:
代码如下 |
复制代码 |
{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 = “SELECT count(*) FROM js_archives WHERE writer = ‘开发建设科’”;
$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=”color: #008000;”>
if($Page>$PageCount|$page==0){// 如果当前页数大于总页数
echo “不能发现此页!”;
exit();
}
//翻页链接
$PageOut = ”;
if($page==1){//如果页数只有一页
$PageOut .= ‘第一页|上一页’;
}
else{
$PageOut .= ‘第一页|上一页|’;
}
if($page==$PageCount||$PageCount==0){//如果当前页等于总也数
$PageOut .= ‘下一页|尾页’;
}
else{
$PageOut .= ‘下一页|尾页’;
}
//获取数据
if($amount){
$sql=”select * FROM js_archives WHERE writer = ‘开发建设科’ limit “.($page-1)*($PageSize).”,$PageSize”;
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){//此段代码只是示例
$blogs[] = array(‘id’=>$row['id'],’title’=>$row['title']);
foreach ($blogs as $blog){
$title=$blog['title'];
$id=$blog['id'];
echo <<< EOT
|
$title |
EOT;
unset($blogs);
}
}
for($i=1;$i<=$PageCount;$i++){//数字分页
$Pageshow = ($i!=$page)?”$i”:”$i”;
echo $PageShow;
}
echo $amount.’条记录,每页’.$PageSize.’条,共’.$PageCount.’页’;
}
echo $PageOut;
{/dede:php}
根据自己的情况 把SQL写上 然后把 list.php 里的
代码如下 |
复制代码 |
if($lv->IsError)
{
//ParamError();
} |