农民程序员一周教会你asp第2讲

好,我们今天来讲第二讲。

昨天的教程大家热情很高,我今天很忙,因为今天是Monday,所以说周一就是“忙day”,但是我依然坚守承诺,继续农民程序员的asp生活。

今天我们研究一个主题:读取特定一条留言记录。

一个功能,也许留言本用不到这个功能,但是在asp的文章系统或者说几乎所有的系统里,都会用到,其实留言本也会用到,等后天的时候讲编辑留言的时候,就用到了。

所以,今天这个事儿,撇开留言本,我们只说例子。

我们还是回到昨天的例子中来,给昨天的例子增加一个小链接吧。这都是html的基础,不多说了。要阅读农民程序员的文章,最好的基础是会一些基础的html标识语言,起码要知道tr td是怎么循环的。如果你还停留在用传统的网页设计布局,不会看代码或者不习惯看代码的话,你还是用Dreamweaver拖拽着做asp吧,dw拖出来的代码,不是给人看的,全是MM打头的代码,神马东西嘛!

例子如图:

 

为什么要增加链接呢,是为了今天讲起来方便。

好,既然连接到show.asp文件了,那么我们就重新做个文件,叫做show.asp

每个页面头部都要引入连接数据库的代码,还是昨天那行代码。

我们在看别人的代码的时候,没见到每页都引入连接数代码啊,而且这么做的话,改个数据库名字还要每个页面都修改,所以我们要插播一则寻人启事。就是关于“引入文件”的提法。

Asp是动态服务器页面技术,可以通过include引入别的文件,编程本文件的一部分,参与执行。

参考模型例子:

新建文件1.asp,内容如下:

追梦阳光是一个充满了激情的团队,他的成员如下:

<font color=red>

<!--#include file="2.asp"-->

</font>

www.dongsky.cn

复制代码

然后新建2.asp,内容如下:

<br>Zidone,神奇的程序大师<br>

<br>zd8987,追梦阳光,栋力无限!<br>

复制代码

运行1.asp,你就什么都明白了。

好了,include说完了,回过头来,我们就可以把连接数据库的代码,放到inc.asp文件中,然后再在每个文件中引入inc.asp文件。

Inc.asp内容如下:

 

好的,按照这个逻辑,改造一下昨天我们学会的index.asp

 

你要是问我最前面那代码是干吗的,你管那么多干嘛,就是个asp的编码而已,中文网页的编码就是这么写就错不了,做事儿只做农民程序员份内的,其他的交给“科学(Xiao)家”去解释。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

一定别忘了引入文件

<!--#include file="inc/conndb.asp"-->

好的,下面开始我们的show.asp的行程。

这个页面主要作用就是显示一篇留言,是是哪一篇呢?要看访问的路径是show.asp?id=dd,看这个dd是多少。

 

具体代码如下:

<%

getid=Request.QueryString("id")

'本页面中使用的参数getid,是这样来的,

'来自于get方式得到的参数id,就是show.asp?id=1的这个id,结果就是1

'下面打开数据库哦,这些跟第一天教程都一样,就是少了个循环而已。

       set rs=server.CreateObject("adodb.recordset")

       sql="select * from lyb where id="&getid

       rs.open sql,conn,1,1

       If Rs.Eof And Rs.Bof Then

              Response.Write("访问错误!")

       Else

       %>

<H2>单条显示内容</H2>    

序号:<%=rs("id")%><BR>

姓名:<%=rs("addname")%><BR>

标题:<%=rs("title")%><BR>

留言时间:<%=rs("addtime")%><BR>

留言内容:<%=rs("content")%><BR><BR>

<BR>显示完毕!

       <%

       End If

       rs.close

       set rs=nothing

%>

复制代码

好了,到此为止,今天的主要内容就讲完了,我们通过以上代码,读取了特定一条留言记录。

大家可以回到访问index.asp页面上来,通过我们刚开始增加的那个超级链接,访问每条留言的详细情况。

 

下面是课外阅读时间,我们将完成两个事儿,第一个事儿是我刚才图片中标注的,可以读取不输出,放在变量里面。就是银行提款不花钱,放在你的钱包里,什么时候用,什么时候花。第二个事儿,是我刚才想起来的,我们玩个可以更新的计数器。

好,先说读取不输出。其实很简单,完全可以作为作业来做。代码如下:

<%

getid=Request.QueryString("id")

       set rs=server.CreateObject("adodb.recordset")

       sql="select * from lyb where id="&getid

       rs.open sql,1

       If Rs.Eof And Rs.Bof Then

              Response.Write("访问错误!")

       Else

Du_title=rs(“title”)

Du_id=rs(“id”)

Du_content=rs(“content”)

Du_addtime=rs(“addtime”)

‘我不写了,以下可以融会贯通写无数个,别撑破了你的钱包哦~~~~~

       End If

       rs.close

       set rs=nothing

%>

复制代码

这么做比较清晰,上来就是读取数据库,然后写入变量中,然后结束,如果没有别的事儿,这一页的asp跟数据库的对接就完成了,剩下的事儿就是你什么时候想用title了,直接<%=du_title%>就可以了。这个时候不能再用rs了,因为你已经rs.close了,就算不关闭,你也没有必要继续从rs中读取了,因为你的内存中已经有了,他叫做du_title。

好,课外阅读翻过。

我们继续打开Access数据文件,给lyb增加个字段,叫做clicknum,点击数嘛!字段类型为数字,默认是0

 

修改show.asp,增加显示这个字段的地方,我就不给代码了,大家应该能融会贯通了。

Du_ck=rs(“clicknum”)

这个代码就代表了将clicknum的数值,赋予给了Du_ck

然后:Du_ck= Du_ck+1

这个大家都应该会明白的,比数据库里面的数字多1,就是又增加了一次。但是这个数字不能入库啊,我们继续来.

PS:这里要特别说明一下啊,为什么Du_ck变量可以“+1”。ASP页面所用的脚本不需要声明变量类型,变量是所谓的“万能变量”。所以,当你Du_ck+1的时候,程序已经自动的把Du_ck当成了“数字”类型,进行加运算。

然后:

Rs(“clicknum”)= Du_ck

Rs.update

好了,别看这代码跟前面的就是等号前后顺序不一样,但是意义全反过来了。

这两行代码的意思是,把Du_ck赋值给rs(“clicknum”),

然后update数据库,这才是灵魂所在。

但是啊,这里有个能否实现的最大关键,就是       “rs.open sql,1”中的最后一个数字,一定要是3 ,否则,是不能更新数据库的,具体为什么不行,我是个农民,这不是农民该研究的事情,这你得问“科学(Xiao)家”。简单说这两个数字参数分别是数据库操作模式和游标类型的,再说就扯远了。

 

好了,课外阅读就到这里,明天同一时间,我们继续!

明天我们的议题是怎么发布新留言以及在今天课外阅读的基础上,编辑留言。

第二天文件:

点击下载

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)