| 视动工坊:动易认证设计师 | ||
| 动易模板大赛连续两次获奖 | ||
| 现共完成动易模板100余个 | ||
| 热诚欢迎定制改制动易模板 | ||
| Q Q: | 363881827 | |
| 手机: | 13153001848 | |
| Tel: | 0531-83711777 | |
| Mail: | wsdjqwj2003@163.com | |
看到不少动易爱好者对全频道搜索比较喜欢(也即全站搜索),我花了将近两周时间,终于搞定,现免费提供给大家参考,
修改了一个查询语句(针对SQL2000),请重新下载!
下载后直接解压到主目录即可使用,程序文件只有一个。
演示页面:
http://ylauto.vicp.net/ylcn/qzss.asp 这个是我网站上的
http://ylauto.vicp.net/YLcn/quanzhanss.asp 这个是精简的页面
大家可以根据程序说明自行修改,如有问题,请跟帖说明。
目前在SW6.6上测试无误,如果您修改了数据库的表名,将会出现错误。
程序简要说明:
动易系统全频道搜索解析
实现动易全频道搜索的关键是建好查询语句。
目前我的网站主要使用了文章频道,商品频道,下载频道,图片频道,我做的查询语句是
key=trim(request("Keyword"))
IF SystemDatabaseType="ACCESS" THEN
sql="SELECT WZSPID,ChannelID,ClassID,BiaoT FROM (SELECT ArticleID AS WZSPID,ChannelID AS ChannelID,ClassID AS ClassID,Title AS BiaoT FROM PE_Article UNION ALL SELECT ProductID,ChannelID,ClassID,ProductName FROM PE_Product UNION ALL SELECT PhotoID,ChannelID,ClassID,PhotoName FROM PE_Photo UNION ALL SELECT SoftID,ChannelID,ClassID,SoftName FROM PE_Soft) T where T.BiaoT like '%"&key&"%' and ChannelID in(1,2,3,1000)"
ELSE
sql="SELECT WZSPID,ChannelID,ClassID,BiaoT FROM (SELECT ArticleID AS WZSPID,ChannelID AS ChannelID,ClassID AS ClassID,Title AS BiaoT FROM PE_Article UNION ALL SELECT ProductID,ChannelID,ClassID,ProductName FROM PE_Product UNION ALL SELECT PhotoID,ChannelID,ClassID,PhotoName FROM PE_Photo UNION ALL SELECT SoftID,ChannelID,ClassID,SoftName FROM PE_Soft) T WHERE charindex('"&key&"',ltrim(T.BiaoT))>0 and ChannelID in(1,2,3,1000)"
END IF
如果你的频道不是这样的,您可能需要修改这个查询语.
这个语句的主要作用是取得频道ID,栏目ID,文章标题或商品的名称或图片名称或软件名称
得到这些后,需要通过他们再次获得频道名称,栏目名称,文章或商品的相关信息(简介、录入时间、作者等)
这里使用了3个函数
Sub GetChannel(tChannelID)
'这个函数作用是获得频道信息(频道名称,频道英文名称)
Dim sqlChannel, rsChannel
If tChannelID > 0 Then
sqlChannel = "select * from PE_Channel where ChannelID=" & tChannelID
Set rsChannel = Conn.Execute(sqlChannel)
If rsChannel.BOF And rsChannel.EOF Then
FoundErr = True
ErrMsg = ErrMsg & "找不到指定的频道"
Else
ChannelName = rsChannel("ChannelName")
if tChannelID=1 then
ChannelAddr="Article"
elseif tChannelID=1000 then
ChannelAddr="shop"
else
end if
end if
end if
end sub
Sub GetClass(tChannelID,tClassID)
'获得栏目信息(栏目名称,栏目目录、栏目ID)
Dim sqlClassName, rsClassName
If tClassID > 0 Then
sqlClassName = "select * from PE_Class where ClassID=" & tClassID &" and ChannelID=" & tChannelID
Set rsClassName = Conn.Execute(sqlClassName)
If rsClassName.BOF And rsClassName.EOF Then
FoundErr = True
ErrMsg = ErrMsg & "找不到指定的频道"
Else
ClassName = rsClassName("ClassName")
ClassDir = rsClassName("ClassDir")
ClassID = rsClassName("ClassID")
end if
end if
end sub
Sub Getinfo(tChannelID,tID)
Dim sqlinfo, rsinfo,pd
If tChannelID = 1 Then
pd="Article"
elseif tChannelID = 2 Then
pd="Soft"
elseif tChannelID = 3 Then
pd="Photo"
elseif tChannelID = 1000 Then
pd="Product"
else
end if
sqlinfo = "select * from PE_"&pd&" where "&pd&"ID=" & tID
Set rsinfo = Conn.Execute(sqlinfo)
If tChannelID = 1 Then
MD="Article"
Intro = rsinfo("Intro")
AID=rsinfo("ArticleID")
elseif tChannelID = 2 Then
MD="Soft"
Intro = rsinfo("SoftIntro")
AID=rsinfo("SoftID")
elseif tChannelID = 3 Then
MD="Photo"
Intro = rsinfo("PhotoIntro")
AID=rsinfo("PhotoID")
elseif tChannelID = 1000 Then
MD="Product"
Intro = rsinfo("ProductIntro")
AID=rsinfo("ProductID")
else
end if
CreateTime = rsinfo("CreateTime")
Inputer = rsinfo("Inputer")
Stars = rsinfo("Stars")
Hits = rsinfo("Hits")
Keywords = rsinfo("Keyword")
end sub
这些做好后,就要根据查询的结果进行依次读取及实现记录分页,这些应该是简单的,在每个记录读取的时候都要调用这三个函数。
大家可以仔细看看压缩包里的程序语句。这个功能大家可以自己再次扩充。
说明下:关于复制频道的处理问题,请仔细看程序源码,您完全可以自己搞定!另外这个代码的分页程序不是很友善,哪位朋友有时间请帮忙完善下。您完全可以修改、精简、完善这个代码。我在这里仅提供一个思路。
完整的说明:请下载
点击浏览该文件
请观看教程:http://download.powereasy.net/qihang/dyrxpyjc/zonghuofen/sousuo.swfswf
