账号通
    

账号  

密码  

3074

查看

3

回复
主题:[原创]通用专题终级分页列表页多模型混排的SQL标签,即分页显示专题下指定多个模型所有信息 [收藏主题] 本贴被认定为精华 转到:  
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2009/3/21 12:37:00   | 只看该作者 查看该作者主题 楼主 
科汛在线考试系统(NET)

日前有个网友提出这么个要求,即要求用SQL标签做出显示当前专题的所有模型信息分页列表,虽然有个“分页显示专题下所有信息(所有模型)”的系统函数标签,但是有时候可能我们需要缩略图列表,或者需要调用更多的字段值,或者为了网页利于样式控制等,这时函数标签就力不从心了。刚好我的一个小站有这方面的应用,顺便就拿出来给大家分享了。这里要用到多表查询,主要的难点在于模型地址的获取,还是先看一下语句吧。新建一个SQL标签,随便起个名如“通用专题终级分页列表页混排”,ajax选否,标签类型选择终级分页标签,下一步,语句栏中输入:
select id,tid,title,adddate,picurl,1 channelid from KS_Article where id in (select infoid from ks_specialr where ChannelID=1 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 union All select id,tid,title,adddate,photourl picurl,2 channelid from KS_photo where id in (select infoid from ks_specialr where ChannelID=2 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 union All select id,tid,title,adddate,photourl picurl,3 channelid from KS_download where id in (select infoid from ks_specialr where ChannelID=3 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 order by id desc


绿色的数字1、2、3分别为文章、图片、软件模型ID,如果你有自定义模型请注意修改为相应的模型ID,下一步,这里是重点,即在循环体中要如何获得正确的信息地址,因为这样写的语句如果还是用{$Field(id,GetInfoUrl,1,1)}来取得URL的话是不正确的:


<div class="photosp"><ul>[loop=20]<li>


<a href="/?thread-{$Field(id,GetInfoUrl,1,2)}-{$Field(channelid,Num,0,2)}.html">
<img src="{$Field(PicUrl,Text,0,...,0,)}" alt="{$Field(title,Text,0,...,0,)}" /></a>
<br /><a href="/?thread-{$Field(id,GetInfoUrl,1,2)}-{$Field(channelid,Num,0,2)}.html">{$Field(title,Text,15,...,0,)}</a>


</li>


[/loop]</ul></div>


 


这是在伪静态下的地址获取,那么在动态页中如何得到呢,需要将SQL语句改一改:


select id,tid,title,adddate,picurl,'article' channelid from KS_Article where id in (select infoid from ks_specialr where ChannelID=1 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 union All select id,tid,title,adddate,photourl picurl,'photo' channelid from KS_photo where id in (select infoid from ks_specialr where ChannelID=2 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 union All select id,tid,title,adddate,photourl picurl,'download' channelid from KS_download where id in (select infoid from ks_specialr where ChannelID=3 and SpecialID={$CurrSpecialID}) and deltf=0 and verific=1 order by id desc
注意红色部份为你的模型的目录名,绿色数字是相对应的模型ID,相应的循环体也得改一改:
<div class="photosp"><ul>[loop=20]<li>


<a href="/{$Field(channelid,Text,0,...,0,)}/ShowInfo.asp?ID={$Field(id,GetInfoUrl,1,2)}">
<img src="{$Field(PicUrl,Text,0,...,0,)}" alt="{$Field(title,Text,0,...,0,)}" /></a>
<br /><a href="/{$Field(channelid,Text,0,...,0,)}/ShowInfo.asp?ID={$Field(id,GetInfoUrl,1,2)}">{$Field(title,Text,15,...,0,)}</a>


</li>


[/loop]</ul></div><br />


全静态页的地址获取得看你选择的生成规则,主要的要点就是模型ID或者模型目录的获取,通过上面二个例子我想这对你一点也不难了吧。
实在不想搞回复帖,您凭着良心看着办吧。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
tall912 当前离线

21

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:427 分
登录次数:14 次
注册时间:2009/3/20
最后登录:2009/6/27
tall912 发表于:2009/3/26 9:48:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2009/3/21 12:51:00   | 只看该作者 查看该作者主题 藤椅 
科汛智能建站系统
你说的不对,如果用判断那更麻烦,我这样是将URL拆分再在循环体中调用模型ID+信息ID生成URL,请看仔细循环体部份。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2009/3/21 12:47:00   | 只看该作者 查看该作者主题 板凳 
科汛在线商城系统(NET)

非常支持,不过这样没办法获得生成的路径.循环体是不是可以改成用{IF判断,也就是如果是判断是1就通过

 

{$Field(id,GetInfoUrl,1,1)}

 

如是是2

就变成

={$Field(id,GetInfoUrl,2,1)}

 

依次类推,就可以得到地址吧.没有具体实践

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行8.08594秒 powered by KesionCMS 9.0