仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 518|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之ASP完成百度一样搜刮关头字高亮的效果

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:05:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。用ASP完成搜刮引擎的功效是一件很便利的事,但是,怎样完成相似3721的智能搜刮呢?好比,当在搜刮前提框内输出“中国国民”时,主动从中提取“中国”、“国民”等关头字并在数据库内举行搜刮。看完本文后,你就能够发明,这个功效完成起来居然是云云的复杂。
第一步,我们要创建一个名为db_sample.mdb的数据库(本文以Access2000数据库为例),并在个中创建表T_Sample.表T_Sample包含以下字段:
ID主动编号
U_Name文本
U_Info备注
第二步,我们入手下手计划搜刮页面Search.asp.该页面包含一个表单(Frm_Search),表单内包含一个文本框和一个提交按钮。并将表单的method属性设为“get”,action属性设为“Search.asp",即提交给网页本身。代码以下:
<!--Search.asp-->
<formname="frm_Search"method="get"action="Search.asp">
请输出关头字:
<inputtype="text"name="key"size="10">
<inputtype="submit"value="搜刮">
</form>
上面,就进进了完成智能搜刮的关头部分。
起首,创建数据库毗连。在Search.asp的入手下手处到场以下代码:
<%
 DimstrProvider,CNN
 strProvider="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="
 strProvider=strProvider&Server.MapPath("")&"datadb_Sample.mdb"’假定数据库寄存在主页根目次下的data目次下
 SetCNN=Server.CreateObject("ADODB.connection")
 CNN.OpenstrProvider翻开数据库毗连
%>
接上去,判别ASP页所吸收到的数据,并在数据库中举行搜刮。
<fontcolor="#FF0000">未找就任何了局!!!</font>
<%
Else
%>
搜刮称号为“<fontcolor="#FF0000"><%=S_Key%></font>”的项,共找到<fontcolor="#FF0000"><%=RST.RecordCount%></font>项:
<%
WhileNotRST.EOF遍历全部纪录集,显现搜刮到的信息并设置链接
%>
<!--此处可设为你所必要的链接方针-->
<fontstyle="font:12pt宋体"><ahref="info.asp?ID=<%=RST("ID")%>"target="_blank"><%=RST("U_Name")%></a></font>
<!--显现部分具体内容-->
<fontstyle="font:9pt宋体"><%=Left(RST("U_Info"),150)%></font><p>
<%
 RST.MoveNext
 Wend
  RST.Close
  SetRST=Nothing
 EndIf
EndIf
%>在下面的代码中,有一个自界说函数AutoKey,该函数是完成智能搜刮的中心地点。代码以下:
<%
FunctionAutoKey(strKey)
CONSTlngSubKey=2
DimlngLenKey,strNew1,strNew2,i,strSubKey

’检拆字符串的正当性,若分歧法例转到堕落页。堕落页你能够依据必要举行设定。

ifInStr(strKey,"=")0orInStr(strKey,"`")0orInStr(strKey,"")0orInStr(strKey,"")0orInStr(strKey," ")0orInStr(strKey,"")0orInStr(strKey,chr(34))0orInStr(strKey,"")0orInStr(strKey,",")0orInStr(strKey,"<")0orInStr(strKey,">")0then
Response.Redirect"error.htm"
EndIf
lngLenKey=Len(strKey)
SelectCaselngLenKey
Case0’若为空串,转到堕落页
Response.Redirect"error.htm"
Case1’若长度为1,则不设任何值
strNew1=""
strNew2=""
’CaseElse若长度年夜于1,则从字符串首字符入手下手,轮回取长度为2的子字符串作为查询前提
Fori=1TolngLenKey-(lngSubKey-1)
strSubKey=Mid(strKey,i,lngSubKey)
strNew1=strNew1&"orU_Namelike%"&strSubKey&"%"
strNew2=strNew2&"orU_Infolike%"&strSubKey&"%"
Next
EndSelect
’失掉完全的SQL语句

AutoKey="Select*fromT_SamplewhereU_Namelike%"&strKey&"%orU_Infolike%"&strKey&"%"&strNew1&strNew2
EndFunction
%>
要完成智能搜刮,其中心就是将搜刮关头字举行主动分组。在此处,我们利用了轮回取长度为2的子串的办法。为何不将子串长度定为1、3、4或其他呢?这是由于若子串长度小于2即为1时,会得到将关头字分组的功效,而若子串长度年夜于2,则会丧失一些词组。人人能够将CONSTlngSubKey=2改成其他数字试一试,孰优孰劣自见分晓。
最初,别忘了将数据毗连封闭,以开释资本。
<%
CNN.Close
SetCNN=Nothing
%>
至此,这个智能搜刮引擎已完成了。你还能够将其持续完美,好比增加分页、凸起显现等功效。
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
只想知道 该用户已被删除
沙发
发表于 2015-1-18 20:15:52 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
板凳
发表于 2015-1-27 20:32:00 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
再现理想 该用户已被删除
地板
发表于 2015-2-5 15:08:49 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
若相依 该用户已被删除
5#
发表于 2015-2-12 13:32:45 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
admin 该用户已被删除
6#
发表于 2015-3-3 03:45:28 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-11 09:48:59 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
谁可相欹 该用户已被删除
8#
发表于 2015-3-18 08:08:54 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
分手快乐 该用户已被删除
9#
发表于 2015-3-25 19:10:25 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表