asp中关于select in的操作

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:54:10
asp网页,从上一个页面中的复选框中取得了id值,再在数据库中进行操作.以下是代码

uid=replace(request.Form("menberid")," ","")

set rs=server.CreateObject("adodb.recordset")
rs.open "select point from menber where id in ("& uid &")",conn,1,3
rs("point")=rs("point")+1
rs.update
rs.close
set rs=nothing

这里我有两点不明白.
接收到的uid都有一个空格.如1, 2, 3 这是为什么?一定要用replace才行么?

第二点,为什么我用上面取得的值进行了数据库操作,都只有最后一个id的内容更新了,也就是说,取得的值只有一个有效?
肯定是一样的,都是从数据库中读取的,全loop过来的.是一样,而且,我从新写个接收id的页面查看了一下,可以接收到多个ID,

jlilo 你说明白点,要怎么做?

首先,uid接收的是一个数组,这个数组有两个元素,1,2,3。所以有逗号隔开。
而replace是替换符号。你这里,是把空格去掉。然后赋值给uid

为什么只有最后一个被修改,因为你查询的结果有三个满足条件,你却没有使用循环,一一做修改。只改了最后一个。为什么是最后一个呢?因为在查询时,默认是按升序排列的。

应该使用循环(循环语句有几种,我这有while....wend):
set rs=server.CreateObject("adodb.recordset")
rs.open "select point from menber where id in ("& uid &")",conn,1,3
while not rs.eof
rs("point")=rs("point")+1
rs.update
rs.movenext
wend
rs.close
set rs=nothing

你的checkbox的名字是不是一样。

1.复选框 传递过来的是一个数组

格式,当然就含有 那种1,2,3,4等

replace 是asp的一个替换函数,作用是把数组中间的逗号替换掉。

2.你用那种方式去更新是不科学的

最好是用循环,嵌套进去就可以了