新闻发布系统asp代码


准备工作:
总共需要十一个asp文件 index.asp add.asp addnew.asp admin.asp conn.asp
del.asp modify.asp modifyup.asp bluepagenews.css list.asp newshow.asp

一个数据库文件access的 xinwen.mdb

一张小图标 dot1.gif

开始讲解:(一)打开access建立一文件xinwen.mdb 表名为aa
字段为
id 自动排序
title 文本
content 文本
time 日期 默认值 now()

(二)打开DW 建立文件conn.asp文件
代码如下:


CODE:

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("xinwen.mdb")
%>



这段语句是连接数据库的语句 set conn=server.createobject("adodb.connection")创建一个connection对象 用该对象的open方法打开数据库

driver={microsoft access driver (*.mdb)};这句语句是access的驱动
dbq="&server.mappath("xinwen.mdb")这句是数据库的路

建立conn.asp是为了方便接下来的教学。。。
我们可以任何要用到打开数据库连接的文件里加
就可以调用








asp 基础实例教程之八个小时打造新闻发布系统二



(第2个小时)
现在来学把数据库的信息输出来,并实现分页。有点复杂。。
(一)首先有必要和大家详细说一下recordset对象的成员。。有关分页技术的几个成员我在这里
详细解说一下。
Pagesize属性:指示Recordset中一页所包含的记录数。默认值为10
Pagecount属性:指示Recordset对象包含的数据页数
AbsolutePage属性:指示从1到Recordset对象所含页数的长整型。通俗的说就是如果数据库有
4页。那么 AbsolutePage就是1,2,3,4

(二)下面先建立一个后台文件admin.asp
代码如下

CODE:


<%
exec="select * from aa order by id desc"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<%
rs.pagesize=2
pagecount=rs.pagecount
page=int(request("page"))
if page<=0 then page=1
if request.querystring("page")="" then
page=1
end if
rs.absolutepage=page
%>













<%
for i=1 to rs.pagesize
if rs.Eof then
exit for
end if
%>






<%
rs

.movenext
next
%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

添加新闻
编号标题时间管理
<%=rs("id")%><%=rs("title")%><%=rs("time")%>" >编辑" >删除

<% for i=1 to pagecount %>
<%=i%>
<%next%>





代码解释:
(1)<%
exec="select * from aa order by id desc "
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
上面的代码是创建一个recordset对象。。该对象是用来打开数据库中的表的。。也就是打开aa
exec="select * from aa order by id desc " 这句的意思是查找表aa中所有信息并倒序排列
信息. *号表示aa中所有的信息 order by id 就是aa中id字段 desc 是倒序的意思
rs.open exec,conn,1,1 这句话的意思是用recordset对象来打开conn中的表

(2)
<%
rs.pagesize=2
pagecount=rs.pagecount
page=int(request("page"))
if page<=0 then page=1
if request.QueryString("page")="" then
page=1
end if
rs.absolutepage=page
%>
这段代码相当重要。大家觉的里面有些单词很熟悉是不是。。
rs.这个的意思是前面 rs=server.createobject("adodb.recordset")
rs就是recordset对象
在很多语言中。rs.的逗号的中文意思是“的”。
那么rs.的解释就是 recordset对象的
rs.pagesize=2 中文解释就是recordset对象的pagesize等于2 pagesize的意思是一页显示多少条信息

pagecount=rs.pagecount 定义pagecount等于recordset对象的pagecount

page=int(request("page")) 接收到的page是整数型

if page<=0 then page=1 如果page小于等于0 page就等于1
if request.QueryString("page")="" then 如果接收到的page是空。
page=1 page等于1
end if 结束

rs.absolutepage=page recordset对象的absolutepage等于page

我只是把每一句语句的意思解释了一遍。。
这里每一句语句都和其它语句有关联。。看不懂也不要泄气。。
因为这个东西是不能一下子学会的。。要看上一段时间。。慢慢理解。。
(3)
<%
for i=1 to rs.PageSize
if rs.EOF then
exit for
end if
%>
上面语句是循环语句。。实现数据库信息的输出
for i=1 to rs.PageSize 每次输出两条信息。PageSize 在前面已经定义为2
if rs.EOF then 如果扫描到数据表中最后一条就结束 exit for

(4)
<%
rs.movenext
next
%>
rs.movenext 这句是游标向下指的意思
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
关闭数据库的意思

(5)
<% for i=1 to pagecount %>
<%=i%>
<%next%>
这句语句的作用是显示页数。。就是显示1,2,3,4 。。我们点2就跳到第2页的内容

这段语句用到了之前定义的pagecount=rs.pagecount 指示Recordset对象包含的数据页数
也就是pagecount能记录数据表的数据分成了几页
<% for i=1 to pagecount %>那么这句的意思是显示1,2,3,4。。。。
<%=i%>这句理解起来有点麻烦。。
?号是连接字符。admin.

asp?page是admin.asp中的page 这里的page就是先前
定义的 page=int(request("page"))

整句的意思就是为每个显示的数字添加连接。。
<%=i%>这里是指1,2,3,4。。。所以我们点任意一个数字就会跳转到该页的内容
<%next%> 指向下一个

完成后台管理的主页了。。我们继续走吧。。









asp 基础实例教程之八个小时打造新闻发布系统三



下面来学向数据库添加信息 需要两个文件 add.asp addnew.asp
(1)先建立一个提交表单add.asp
代码如下:

CODE:





添加信息















标题:
内容:






上面代码要注意的是action="addnew.asp"提交到addnew.asp文件

(2)处理文件addnew.asp
代码如下:

CODE:


<%
title=request.form("title")
content=request.form("content")
exec="insert into aa(title,content) values('"+title+"','"+content+"')"
conn.execute exec
conn.close
set conn=nothing
response.redirect "admin.asp"
%>



代码解释:
(1)
title=request.form("title")
content=request.form("content")
这两句语句是接收add.asp发来的信息。。request.form("title")就是对应add.asp中的name="title"

(2)
exec="insert into aa(title,content) values('"+title+"','"+content+"')"
conn.execute exec
上面的语句是数据库插如信息的语句
insert into aa(title,content) 中文意思是插入信息对应aa表中的两个字段
两个字段的数值是values('"+title+"','"+content+"')" 这里面对应的值是
这两句语句
title=request.form("title")
content=request.form("content")
传递的

(3)
conn.close
set conn=nothing
response.redirect "admin.asp"
关闭数据库。。写如成功后自动转页面到admin.asp











asp 基础实例教程之八个小时打造新闻发布系统四



接下来我们来学删除数据库信息。。。
删除信息比较简单。。只需要一个文件del.asp
代码如下:

CODE:


<%
exec="delete * from aa where id="&request.querystring("id")
conn.execute exec
conn.clos

e
set conn=nothing
response.redirect "admin.asp"
%>



代码解释:
exec="delete * from aa where id="&request.querystring("id")
conn.execute exec
先翻译成中文意思
删除表aa中id字段的值。。这个值等于="&request.querystring("id")
还记得我们建立admin.asp文件的时候吗?里面有段语句是这样的
">删除
大家现在看明白了吧!你们这么聪明。。一定明白了。
我再补充说两句
当我们点击删除的时候。。。这个时候就会连接到del.asp做处理。。
而同时del.asp接收到我们的请求是通过"&request.querystring("id")这句语句
然后conn.execute exec 这条语句就执行删除。。
整个流程就是这样。。。







asp 基础实例教程之八个小时打造新闻发布系统五


现在学习数据的修改。 这是难点。。大家要认真的跟着我学。。
本人也是看了很久才学会的。。解释的不好多多包容。。
修改需要两个文件
(一)建立modify.asp 和del.asp很像似
代码如下:

CODE:


<%
exec="select * from aa where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>





修改信息















标题:
">
内容:

">





代码解释:
(1)
<%
exec="select * from aa where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
这句exec="select * from aa where id="&request.querystring("id")我在del.asp里解释过了
在这里也是一样的道理
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
上面是用recordset对象打开数据表。。。

(2)
">
这里要注意名字要对应。。否则或出错。。
">
这里是隐藏表单。。。提交隐藏的表单元素会随着表单一起提交,

用于传递变量

(二)建立modifyup.asp 文件
代码如下:


CODE:


<%
exec="select * from aa where id="&request.form("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,3
%>
<%
rs("title")=request.form("title")
rs("content")=request.form("content")
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
response.redirect"admin.asp"
%>




代码解释:
(1)
rs("title")=request.form("title")
rs("content")=request.form("content")

这两句话的意思是数据库中的rs("title")的值等于接收到request.form("title")的值
request.form("title")的值是从modify.asp传递来的。。
(2)
rs.update 这句语句是更新数据库里的信息的意思 就是把提交的信息上传到数据库






asp 基础实例教程之八个小时打造新闻发布系统六



前面把后台所需要的文件都做完了~
现在来做前台的 需要三个文件 index.asp list.asp newshow.asp
首先先做list.asp
代码如下:

CODE:


<%
exec="Select top 5 * From aa Order By id DESC"
set rs=conn.execute(exec)
if not rs.eof then
rs.movefirst
dis_mes=dis_mes & "最新更新
"
do while not rs.eof
dis_mes=dis_mes &" " & rs("title") & " " & rs("time") & "
"
rs.movenext
loop
end if
rs.close
dis_mes="document.write(""" & dis_mes & """);"
response.write dis_mes
%>



代码解释:
(1)
exec="Select top 5 * From aa Order By id DESC"
set rs=conn.execute(exec)
选择数据库里的表aa的前5条信息
(2)
if not rs.eof then
rs.movefirst
dis_mes=dis_mes & "最新更新
"
do while not rs.eof
直到扫描到最后一条信息 游标就跳到第一条信息
dis_mes=dis_mes & "最新更新
"定义一个变量 变量后面是显示最新更新

(3)
dis_mes=dis_mes &" " & rs("title") & " " & rs("time") & "
"

&"&这里是显示图片https://www.360docs.net/doc/f21147675.html,/Article/web01/web01srv/200609/dot1.gif

"这里是连接到newshow.asp文件做处理 为每一条最新信息添加连接 当点激显示的信息时 就跳到newshow.asp

rs("title") & "
" & rs("time") 这里是显示数据库的title和time

(4)
dis_mes="document.write(""" & dis_mes & """);"
这段代码是输出dis_mes 的值


整个list.asp 文件的意思是输出数据库最新的前5条信息 并为每条信息添加连接 点激进入详细信息










asp 基础实例教程之八个小时打造新闻发布系统七



下面我们来做前台文件newsh

ow.asp
代码如下:

CODE:



<%
exec="select * from aa where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>





新闻















标题:<%=rs("title")%>
内容:
<%=rs("content")%>





代码解释:
(1)

这是调用外部的css文件
源文件里面有。。大家自己下载







asp 基础实例教程之八个小时打造新闻发布系统八


终于要结束了。。最后的显示文件index.asp
代码如下:

CODE:
























管理登陆









代码解释:
(1)
调用文件list.asp
很简单的文件

终于都解释完了。。有很多不足的请见谅














相关文档
最新文档