View Single Post
  #1   IP: 61.160.30.41
Old 2014-05-01, 10:57 PM
Ulster Ulster is offline
初级会员
 
Join Date: 2008-04-18
Posts: 1
Ulster 现在声名狼藉
Default 利用{dede:sql}真正调用分类信息发布作者到首页

织梦系统中,分类信息模型属于独立单表模型的,他的调用标签为ArcListsg 标签,而使用系统内置的Arclistsg 标签是无法调用信息的发布人的!也就是说没有[field:信息发布人/] 这样的字段可供选择。

面对这样的问题,大多数新手朋友可能就会束手无策!不过,今天,雪毅告诉你,这些都是可以解决的。

织梦系统提供了强大的SQL标签供高级用户使用,他的基本格式为:
Code:

    {dede:sql sql="完整的SQL查询语句"}   
        底层模板,用于输出[field:字段名/]<!--字段名取值范围为查询结果的所有字段-->      
    {/dede:sql}   
我们了解了上面的这种方式以后,那么我们就可以使用SQL语句来调用分类信息模型了。一个简单的例子:
Code:

    {dede:sql sql="select * FROM dede_addoninfos limit 0,10"}       
        信息标题:[field:title/]       
    {/dede:sql}    
上面的这种基本调用就是调用了信息发布的最新10条信息。这里的* 号就可以取值到信息发布者的会员id号,他的字段是mid,那么我们就可以在底层模板中通过 [field:mid/] 来进行输出了。但是这里我们只输出这个id号,无法取得他的会员名及昵称啊?怎么办呢?

这里我们就可以想到利用left join 来进行匹配了,因为他既然能够获取他的会员id号,那么这个值他是与织梦的会员表是相互关联的,通过这个值我们可以关联到织梦会员表来获取更加详细的会员资料。比如:

Code:

    Select a.*,m.* FROM dede_addoninfos a left join dede_member m on a.mid = m.mid     
这里利用left join 来进行匹配,让他们两边的ID号码相等,就可以了。所以我们调用分类信息发布者到首页的具体代码就为:
Code:

    {dede:sql sql="Select a.*,m.* FROM dede_addoninfos a left join dede_member m on a.mid = m.mid limit 0 2"}       
        [field:字段名/]<!--这里的字段名的取值就可以为addoninfos与member两个表的所有字段了-->      
    {/dede:sql}    
当然,这里提供的仅仅是一个思路!比如,后面的限制调用的栏目,只需要在 a.mid = m.mid 后面加上一个where a.typeid = 栏目id 来进行表示,如果你的栏目为多个,还可以使用 where a.typeid IN(栏目1,栏目2....栏目N)等等。
Reply With Quote