大清早跑来求救~~HELP~~100分求助~事关工作大业~

langya001 2006-05-24 06:40:41
公司有一个新闻页面。按类分别显示。现在老总要求加个按月显示的功能,就是在页面上生成一个下拉表,按年月显示新闻。我不知该如何做了~~大家帮帮我吧
现在的代码
set objRs=Server.CreateObject("Adodb.Recordset")
objRs.open "select Top 5 * From News Where type Like '新闻' order by id desc"
Do while Not objRs.Eof
response.write objRs("新闻标题")
objRs.MoveNext
Loop
objRs.Close
objRs.open "select Top 5 * From News Where type Like '动态' order by id desc"
Do while Not objRs.Eof
response.write objRs("动态标题")
objRs.MoveNext
Loop

现在的问题是我如何才能用<select>得到纪录中所有年月(字段名为date)呢?有没有朋友能帮我下,这个东东做不出来我可能也要被扫地出门了~~~55555
...全文
392 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgrwang 2006-05-25
  • 打赏
  • 举报
回复
码未央 2006-05-25
  • 打赏
  • 举报
回复
select的onchange(),传出value值,每个value代表一个月份,构造查询语句
slawdan 2006-05-24
  • 打赏
  • 举报
回复
基本解决~
接分~
langya001 2006-05-24
  • 打赏
  • 举报
回复
如果是的话就好了。。唉。不过还好。我在新闻添加时多加个字段解决了,唉。。但愿这样能混过去
xxuu503 2006-05-24
  • 打赏
  • 举报
回复
我觉得你们BOSS的意思是:


<年><月><查询按钮>

选完年月后,可以查询
xxuu503 2006-05-24
  • 打赏
  • 举报
回复
select top 1 date from table order by data//取最大

select top 1 date from table order by data desc//取最小

然后坐datediff
underone 2006-05-24
  • 打赏
  • 举报
回复
<%
sql="select distinct(date) from 表 where Group By date"
set rs=conn.execute(sql)
while not rs.eof
response.write("<option value="&rs("date")&">"&rs("date")&"</option>")
rs.movenext
wend
rs.close
conn2.close
%>
zhangjincheng88 2006-05-24
  • 打赏
  • 举报
回复
<%
sql="select * from 表 where Group By date"
set rs=conn.execute(sql)
while not rs.eof
response.write("<option value="&rs("date")&">"&rs("date")&"</option>")
rs.movenext
wend
rs.close
conn2.close
%>
这样就能得到你要的日期列表了
zhangjincheng88 2006-05-24
  • 打赏
  • 举报
回复
还有一种办法,那就是你先建立一个视图,将你记录表中的数据,以Goup By形式输出一组年月信息,然后在显示到你的<Select></Select>里面就可以了
可以适当的截取字符
langya001 2006-05-24
  • 打赏
  • 举报
回复
可他要用年来区分呀。。郁闷~
zhangjincheng88 2006-05-24
  • 打赏
  • 举报
回复
按照页面执行速度和质量来说,还是按1-12月显示比较好,即使某个月没有记录,可以在查看那个月记录的时候显示“暂无记录”一类的信息。
现在中国移动的电话记录不也是这么显示的吗。即使你某个月没有记录,他也个了你这个月的选项
竹林听雨2005 2006-05-24
  • 打赏
  • 举报
回复
那你只有用月来表示,下拉框中只显示12个月份,然后再来获取用户提交的月份,从数据库中查询相关符合条件记录
langya001 2006-05-24
  • 打赏
  • 举报
回复
楼上的弟兄。我是要每个月的都取出来捏。其中可能有一个月没有数据。
智能大石头 2006-05-24
  • 打赏
  • 举报
回复
where Month(date)=1
langya001 2006-05-24
  • 打赏
  • 举报
回复
我的问题是
我现在有2003-1-1到2004-3-1这样的数据
如何搜索数据库能得到
<select>
<option value="?date="&2003-1&"">2003-1</option>
。。。这里顺序显示(但都是数据库中有的纪录)
<option value="?date="&2004-1&"">2004-1</option>
</select>
langya001 2006-05-24
  • 打赏
  • 举报
回复
新闻表中的数据是按2005-06-31这样来存的time类型字段
竹林听雨2005 2006-05-24
  • 打赏
  • 举报
回复
如果你的数据库中是以每月来保存的,比如记录为
aaa (一月)
那这样可以直接通过获取数据库中date字段的内容,然后显示在下拉框中,
<select name="boyd1" id="boyd1" onChange="form.submit()">
<option>请选择</option>
<%
sql="select * from 名称 where date<>''"
set rs=conn.execute(sql)
while not rs.eof
response.write("<option value="&rs("date")&">"&rs("date")&"</option>")
rs.movenext
wend
rs.close
conn2.close
%>

前面的IF判断照写,稍作变动一些
竹林听雨2005 2006-05-24
  • 打赏
  • 举报
回复
可能会用上的函数:

DateAdd
DateDiff

关于这两个函数如若不明白,可上网查一下,或问我也行
竹林听雨2005 2006-05-24
  • 打赏
  • 举报
回复
或者这样做:
<%
if request("boyd1")="" then
...
elseif request("boyd1"="january" then
...
end if
'因这里不明白你的数据结构,所以只好判断一至十二月了,你可以根据你的实际情况来进行改写,简化代码
%>

<select id="boyd1" name="boyd1" onChange="form.submit()">
<option value="">请选择</option>
<option value="january">一月</option>
<option value="february">二月</option>
...

竹林听雨2005 2006-05-24
  • 打赏
  • 举报
回复
你得将表结构说明一下呀
加载更多回复(2)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧