织梦dede:sql语句调用指定字段变量文章

使用织梦程序做网站的时候写文章我们都想调取一些相关性高的文章来展示,那么织梦怎么通过sql语句来获取指定字段变量的文章呢?

常见sql调取文章方式

{dede:sql sql="SELECT * FROM dede_archives WHERE title LIKE '%~shorttitle~%'"}
<li><a href='[field:id runphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]">[field:title function=cn_substr(@me,40,0)/]</a></li>
{/dede:sql}

参数说明:

1.dede_archives 代表你的数据库表前缀
2. shorttitle 是你要调取的数据库里面信息的字段  title 是检查标题
3. like  进行匹配 
4.%正则匹配%  匹配%%中间的文字 是否有一样的 有就调取   
5.~~  中间的为你的自定义字段   自己到模型创建设置

6.(重要)打开 include/taglib/sql.lib.php 文件

$sql = str_replace($conditions[0][$key], "'".addslashes($refObj->Fields[$value])."'", $sql);

替换为

$sql = str_replace($conditions[0][$key], addslashes($refObj->Fields[$value]), $sql);

这样就可以正常调取到指定字段变量的文章了。

多个自定义字段调取文章写法

{dede:sql sql="SELECT * FROM dede_archives WHERE title LIKE '%~ziduan1~%' or title LIKE '%~ziduan2~%' or title LIKE '%~ziduan3~%' order by click desc limit 10 offset 1"} 
<li><a href='[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,40,0)/]</a></li>
{/dede:sql}

参数说明:

1.order by click  按点击排序

2.desc 降序 asc 正序

3.limit 15 调用15条

自定义字段指定id栏目随机调取文章

{dede:sql sql="SELECT * FROM dede_archives WHERE typeid=4 and title LIKE '%~diaoqu2~%'  or title not LIKE '%~ziduan3~%' order by rand() limit 10 offset 1"}
<li><a href='[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,40,0)/]</a></li>
{/dede:sql}

参数说明:

1.typeid=4 指定id栏目

2.order by rand() 随机调用

3.not 排除标题带ziduan3文章

4.channelid='17' 指定id模型

sql调取文章时排除当前文章

{dede:sql sql="SELECT * FROM dede_archives WHERE title LIKE '%~变量~%' and title != '~title~' order by click desc limit 10 offset 0"}
<li><a href='[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,40,0)/]</a></li>
{/dede:sql}

tag通过数据库调取文章

{dede:sql sql="SELECT * FROM dede_archives WHERE title like CONCAT('%',(SELECT tag FROM dede_taglist WHERE aid=~id~),'%')"}
<li><a href='[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,40,0)/]</a></li>
{/dede:sql}

参数说明:

先查出tag ,再根据tag 查标题里含tag的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值