织梦系统中,分类信息模型属于独立单表模型的,他的调用标签为ArcListsg 标签,而使用系统内置的Arclistsg 标签是无法调用信息的发布人的!也就是说没有[field:信息发布人/] 这样的字段可供选择。
面对这样的问题,大多数新手朋友可能就会束手无策!不过,今天,雪毅告诉你,这些都是可以解决的。
织梦系统提供了强大的SQL标签供高级用户使用,他的基本格式为:
折叠展开XML/HTML Code复制内容到剪贴板
{dede:sql sql="完整的SQL查询语句"}
底层模板,用于输出[field:字段名/]<!--字段名取值范围为查询结果的所有字段-->
{/dede:sql}
我们了解了上面的这种方式以后,那么我们就可以使用SQL语句来调用分类信息模型了。一个简单的例子:
折叠展开C/C++ Code复制内容到剪贴板
{dede:sql sql="select * FROM dede_addoninfos limit 0,10"}
信息标题:[field:title/]
{/dede:sql}
上面的这种基本调用就是调用了信息发布的最新10条信息。这里的* 号就可以取值到信息发布者的会员id号,他的字段是mid,那么我们就可以在底层模板中通过 [field:mid/] 来进行输出了。但是这里我们只输出这个id号,无法取得他的会员名及昵称啊?怎么办呢?
这里我们就可以想到利用left join 来进行匹配了,因为他既然能够获取他的会员id号,那么这个值他是与织梦的会员表是相互关联的,通过这个值我们可以关联到织梦会员表来获取更加详细的会员资料。比如:
折叠展开SQL Code复制内容到剪贴板
Select a.*,m.* FROM dede_addoninfos a left join dede_member m on a.mid = m.mid
这里利用left join 来进行匹配,让他们两边的ID号码相等,就可以了。所以我们调用分类信息发布者到首页的具体代码就为:
折叠展开XML/HTML 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)等等。