PC6下载站

分类分类

ASP进阶之文章在线管理更新8

关注+2004-10-07作者:蓝点

ASP进阶之文章在线管理更新--主页面及搜索



作者:沙滩小子



   经过了文章的添加、保存、显示,那么现在应该来谈谈关于管理程序的显示主页面,也就是显示所有文章的标题连接,以方便浏览者查找文章,其应该具有的功能有:显示所有文章的标题连接,加入日期,浏览次数等信息,另外还必须提供分页功能,要不然这么多的文章标题在一个页面都显示出来,那将非常的费时且不便浏览,另外由于本程序在这里结合了文章分栏目搜索的功能,所以在这里也将一起介绍了。



   下面就为大家详细的介绍主页面index.asp的这些功能的实现过程以及其具体功用:



   "建立数据库连接











ASP专题栏目









<%



   "定义每页最大文章标题显示量MaxPERPage,你可以自己修改这里的数字来达到你的最佳显示效果

   const MaxPerPage=18

   dim totalPut   

   dim CurrentPage

   dim TotalPages

   dim i,j



   "假如返回的页面信息是空的,也就是如果你直接输入index.asp,那么就用这里定义的页数第一页

   if not isempty(request("page")) then

      currentPage=cint(request("page"))

   else

      currentPage=1

   end if

   dim sql

   dim rs

   dim rstype

   dim typesql

   dim typeid,typename



   "如果返回的栏目信息为空,那么就用这里定义的栏目,这里指定的是第三个栏目

   if not isEmpty(request("typeid")) then

typeid=request("typeid")

   else

typeid=3

   end if



   "通过返回的栏目typeid号,打开数据库显示指定的栏目,并把其值交给typename

set rstype=server.createobject("adodb.recordset")

  typesql="select * from type where typeID="&cstr(typeid)

  rstype.open typesql,conn,1,1

  typename=rstype("type")

  rstype.close

%>











  

    

  






   "显示栏目信息,当你点击了任何一个栏目,在typename的位置都会显示相关信息,这里没有采用栏目的自动显示方式是考虑了页面的显示效果,而采用手工添加的模式,要想采用自动模式,就自己写吧:)相信你学习到现在,不会连这个都编不出来吧!

    动网ASP技巧专题&gt;&gt;<%response.write ""&typename&""%>


    ASP FAQASP组件ASP文摘ASP实例ASP安全



    




   "打开指定的记录集article并按照文章的加入日期排序,在这里打开有两个条件,一个是利用like来查询数据库并显示相关文章标题,还有就是通过返回的typeid显示指定栏目的文章

<%

sql="select * from article where title like '%"&request("txtitle")&"%' and typeid="+cstr(typeid)+" order by date desc"

Set rs= Server.CreateObject("ADODB.Recordset")

rs.open sql,conn,1,1



  "如果查询数据库的结果指向记录集的开始或者结尾,表示数据库中没有任何相关文章

  if rs.eof and rs.bof then

       response.write "

没有或没有找到任何文章

"

   else

  "如果数据库内有内容,则取得数据库内文章数目

  totalPut=rs.recordcount

  "假如页面参数currentpage小于1,则指定为1

      if currentpage<1 then

          currentpage=1

      end if

  "利用文章总数和每页最大文章数算得分页的页数

      if (currentpage-1)*MaxPerPage>totalput then

   if (totalPut mod MaxPerPage)=0 then

     currentpage= totalPut \ MaxPerPage

   else

      currentpage= totalPut \ MaxPerPage + 1

   end if



      end if

  "如果分页的页数为1或者页面数减1乘与页面最大文章数小于文章总数,则用已经做好的function showpage在showContent子程序也就是显示文章标题部分的上面和下面显示分页程序

       if currentPage=1 then

            showpage totalput,MaxPerPage,"index.asp"

            showContent

            showpage totalput,MaxPerPage,"index.asp"

       else

          if (currentPage-1)*MaxPerPage
            rs.move  (currentPage-1)*MaxPerPage

  "定义书签

            dim bookmark

            bookmark=rs.bookmark

            showpage totalput,MaxPerPage,"index.asp"

            showContent

            showpage totalput,MaxPerPage,"index.asp"

        else

        currentPage=1

           showpage totalput,MaxPerPage,"index.asp"

           showContent

           showpage totalput,MaxPerPage,"index.asp"

      end if

   end if

   rs.close

   end if

        

   set rs=nothing

   "显示文章标题及相关数据库内容子程序  

   sub showContent

       dim i

   i=0



%>



      

        

        

        

        

      

<%do while not rs.eof%>

      

   "依次显示文章ID号,文章标题,文章加入日期及浏览数,这里的openarticle.asp是用来重新定向文章的,以后将为大家介绍

        

        

        

        

      

<%

   "这里是一个循环,每显示一篇文章,则定义的变量i的值加一,当i的值大于或等于页面最大文章数时退出循环

      i=i+1

      if i>=MaxPerPage then exit do

   "显示完一篇文章以后,自动移到记录集的下一个记录

      rs.movenext

   loop

  %>

    
ID号文章标题加入日期点击

<%=rs("articleid")%>

&typeid=<%=cstr(typeid)%>')"><%=rs("title")%>

<%=rs("date")%>

<%=rs("hits")%>



    
<%

   end sub



   "显示分页的function

function showpage(totalnumber,maxperpage,filename)

  dim n



   "利用文章数算出文章的分页数N

  if totalnumber mod maxperpage=0 then

     n= totalnumber \ maxperpage

  else

     n= totalnumber \ maxperpage+1

  end if

  response.write "
"

  response.write "

&gt;&gt;分页&nbsp;"



   "如果当前页数小于2,则显示的文章首页和上一页不显示连接,否则用当前页数减去1来显示上一页,直接用page=1来显示首页

  if CurrentPage<2 then

    response.write "首页 上一页&nbsp;"

  else

    response.write "首页&nbsp;"

    response.write "上一页&nbsp;"

  end if



    "假如分页页数小于1,则直接显示下一页和尾页,否则用当前页数加上1来显示下一页,用已经算出的文章分页数N显示文章的尾页

  if n-currentpage<1 then

    response.write "下一页 尾页"

  else

    response.write ""

    response.write "下一页
尾页"

  end if



    "用N和maxperpage显示文章的分页数和每页的文章数

   response.write "&nbsp;页次:"&CurrentPage&"/"&n&" "

    response.write "&nbsp;共"&totalnumber&"篇文章 "&maxperpage&"篇文章/页 "



    "直接输入文章所在页面转到相关页面

   response.write " 转到:"

   response.write "

"     

end function

%>



   "文章搜索相关程序





   "把输入的查询字符赋值给txtitle,这样在前面的显示文章语句就起了作用title like '%"&request("txtitle")&"%'

      

标题:



    


    










   在这里顺便介绍一下关于打开文章的程序openarticle.asp,这个也是一个更新数据库内容(update浏览数)和重定向文件。很简单,所以这里只是简单介绍一下它的程序内容:

   

<%@ LANGUAGE="VBSCRIPT" %>

   "打开数据库连接



<%response.buffer=false

dim sql

dim rs

dim articleid

    "利用update从文章连接处返回的文章号ID更新指定文章的浏览数,以及利用response.redirect重定向文章的连接

articleid=request("id")

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

sql="update article set hits=hits+1 where articleID="&articleid

rs.open sql,conn,1,1   

rs.close

conn.close

response.redirect "list.asp?id="&articleid

%>



   好了,关于文章的显示首页面就完成了,它可以显示文章的标题,加入日期等文章相关信息,另外还结合了文章的分栏目搜索查询功能。在这里你会发现,利用ASP对数据库进行查询并不是一件很难的事情,只要利用一个like就可以轻易实现,文章管理的前台程序我们已经基本完成,下面该来介绍管理系统的后台程序了。
展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消