塑性加工发展现状:寻求设计思路:数据库记录排序的问题?

来源:百度文库 编辑:查人人中国名人网 时间:2024/03/29 22:14:54
“table1”表中有一字段“sort”,来排序记录,

SQL SELECT 语句:SELECT * FROM table1 ORDER BY sort

那么,如有以下记录:

ID(唯一) 名称 sort 在页面上记录移动操作
1 记录a 1 上移 下移
2 记录b 2 上移 下移
4 记录c 3 上移 下移 ——*********
6 记录d 4 上移 下移
7 记录e 5 上移 下移

则,若我点“*********”号处的下移,程序上怎么判断和做,才能下移,结果如下:

ID(唯一) 名称 sort 在页面上记录移动操作
1 记录a 1 上移 下移
2 记录b 2 上移 下移
4 记录c 4 上移 下移 ——###
6 记录d 3 上移 下移 ——###
7 记录e 5 上移 下移

请问程序上这样做的思路是什么啊?
通常“下移”按扭的连接如:<a href="do.aspx?id=4">下移</a>
谢谢

这个排序作分类是必须碰到的。 你这个sort不是 唯一标识 实现起来还是比较简单的。
查询的时候 按照 sort排序。
点击上移或者下移 就是把 sort数值进行更新,临近数值的交换,
另外还要判断是否最顶或者最低。
<a href="do.aspx?action=Order&type=Down&id=4">下移</a>
<a href="do.aspx?action=Order&type=Up&id=4">上移</a>
<%
Dim ordertype,id
id=request("id")
ordertype=request("type")
If ordertype="Down" Then
sql="select top 2 sort from Class where id <= "&id&" order by sort desc"
Elseif ordertype="Up" Then
sql="select top 2 sort from Class where id >= "&id&" order by sort asc"
End If
set rs=server.createobject("Adodb.recordset")
rs.open sql,conn,1,3
Dim i
i= 0
If rs.recordcount=1 Then
If ordertype="Down" Then
response.Write("已经是最底部了。")
Elseif ordertype="Up" Then
response.Write("已经是最顶部了。")
End If
Else
Dim temp_this,temp_next
temp_this=rs("sort")
rs.movenext
temp_next=rs("sort")
rs.MovePrevious
rs("sort")=temp_next
rs.movenext
rs("sort")=temp_this
rs.update
End If
rs.close
set rs=nothing
%>

其实要实现这个非常简单,只是有sort的数值更新而已。
通常ID传递当前要移动的数据,然后读取要移到下条记录的ID并得出sort值,然后就是数据的更新。

asdhasdfasjfsdggahh