如何多选添加记录?

偷麦 2009-08-20 01:51:50
一般分2个页面 一个是选择页面 令一个是处理页面
选择页面有N个产品 每个产品下有个框,可以一起多选几个产品 点下一步 就直接加入购物车了

处理页面当然就是购物车页面 也是处理传递过来的参数
我是想把这些参数 有存在的话 就在数量上加个1 没有的话 就直接加入这些记录


哪位大侠帮个忙啊 解决后 在多追加分

或者QQ 我的4502024
...全文
179 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
toury 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wukai0206 的回复:]
bookid=Request.Form("myproduct")
bookid=replace(bookid,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串
bookid=cint(bookid)?????????????
arr=split(bookid,",")
for i=0 to ubound(arr)
sql="INSERT INTO ceshi (bookid) VALUE ("&arr(i)&")"
  conn.execute(sql)
next

提示我SQL语句错误? 哪错了?
[/Quote]
你还没理解我的建议,看红字。
今天很忙,可能下午才有点时间,你先思考一下
偷麦 2009-08-21
  • 打赏
  • 举报
回复
<%
myproductID=request.form("myproduct")
myproductID=replace(myproduct,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

arr=split(myproductID,",")

for i=0 to ubound(arr)
t=""
t=conn.execute("SELECT 产品ID字段 FROM 表 WHERE 产品ID字段="&arr(i))(0)'看看该产品是否已经存在
if t="" then'不存在就增加1个数量
sql="INSERT INTO 表(产品ID字段,数量字段) VALUE('"&arr(i)&"',1)"
else'否则累加1
sql="UPDATE 表 SET 数量字段=数量字段+1 WHERE 产品ID字段="&arr(i)
end if
conn.execute(sql)
next
%>


大侠你的有错!
偷麦 2009-08-21
  • 打赏
  • 举报
回复
bookid=Request.Form("myproduct")
bookid=replace(bookid,", ",",")
bookid=cint(bookid)
arr=split(bookid,",")
for i=0 to ubound(arr)
sql="INSERT INTO ceshi (bookid) VALUE ("&arr(i)&")"
conn.execute(sql)
next

提示我SQL语句错误? 哪错了?
偷麦 2009-08-21
  • 打赏
  • 举报
回复
嗯 谢谢师傅 上述问题 基本上解决了 谢谢你这么细心的帮我 我把我的分全给你
toury 2009-08-21
  • 打赏
  • 举报
回复
当然,你11楼那样写也可以,不过效率上就差多了。你想啊,为了判断是否选择了一个产品,你返回了一个记录集,呵呵。

稳妥起见,你可以:
if t="" or IsNull(t)'不存在就增加1个数量

toury 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wukai0206 的回复:]
bookid=request.form("myproduct")
  bookid=replace(bookid,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

  arr=split(bookid,",")
for i=0 to ubound(arr)
  't="" ,这个t=""你想说明什么?

  set t=conn.execute("SELECT * FROM shop_action WHERE bookid="&arr(i))'看看该产品是否已经存在

    if t.eof then'不存在就增加1个数量
      sql="insert into shop_action (actionid) values ("&arr(i)&")"
    else'否则累加1
      sql="UPDATE ceshi SET bookcount=bookcount+1 WHERE id="&arr(i)
    end if
    conn.execute(sql)
  next


师傅 我这样写就对了  谢谢你  但是有个问题没解决  帮个忙
[/Quote]
刚有点时间:(
这两行红字是有意义的(你和我4楼代码比较一下):
t=""'是为了清空这个变量,而这个变量是为了判断是否客户已经选择了这个产品;
t本身是第一个字段的值。你那么一改,变成了记录集了呀
conn.execute("SELECT * FROM shop_action WHERE bookid="&arr(i))(0)相当于rs(0),明白了吗?

我用SELECT *也不好,这样:
t=""
t=conn.execute("SELECT bookid FROM shop_action WHERE bookid="&arr(i))(0)'看看该产品是否已经存在
偷麦 2009-08-21
  • 打赏
  • 举报
回复
bookid=request.form("myproduct")
bookid=replace(bookid,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

arr=split(bookid,",")
for i=0 to ubound(arr)
't="" ,这个t=""你想说明什么?
set t=conn.execute("SELECT * FROM shop_action WHERE bookid="&arr(i))'看看该产品是否已经存在
if t.eof then'不存在就增加1个数量
sql="insert into shop_action (actionid) values ("&arr(i)&")"
else'否则累加1
sql="UPDATE ceshi SET bookcount=bookcount+1 WHERE id="&arr(i)
end if
conn.execute(sql)
next


师傅 我这样写就对了 谢谢你 但是有个问题没解决 帮个忙
煤油灯 2009-08-21
  • 打赏
  • 举报
回复
路过:(
偷麦 2009-08-21
  • 打赏
  • 举报
回复
好 师傅 等你
偷麦 2009-08-20
  • 打赏
  • 举报
回复
谢谢 大侠帮忙 我先试下
toury 2009-08-20
  • 打赏
  • 举报
回复
漏掉重要的一句,看这个:
<%
myproductID=request.form("myproduct")
myproductID=replace(myproduct,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

arr=split(myproductID,",")

for i=0 to ubound(arr)
t=""
t=conn.execute("SELECT 产品ID字段 FROM 表 WHERE 产品ID字段="&arr(i))(0)'看看该产品是否已经存在
if t=""'不存在就增加1个数量
sql="INSERT INTO 表(产品ID字段,数量字段) VALUE('"&arr(i)&"',1)"
else'否则累加1
sql="UPDATE 表 SET 数量字段=数量字段+1 WHERE 产品ID字段="&arr(i)
end if
conn.execute(sql)
next
%>
toury 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wukai0206 的回复:]
2楼大侠  我基本上看明白了  你的是修改的  能实现一个功能  但是还差一个
有存在的话 就在数量上加个1  没有的话 就直接加入没有加入过的记录
[/Quote]
确实是我没考虑周全。
如果是这样的话,只好循环了:
购物车界面:
<%
myproductID=request.form("myproduct")
myproductID=replace(myproduct,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

arr=split(myproductID,",")

for i=0 to ubound(arr)
t=conn.execute("SELECT 产品ID字段 FROM 表 WHERE 产品ID字段="&arr(i))(0)'看看该产品是否已经存在
if t=""'不存在就增加1个数量
sql="INSERT INTO 表(产品ID字段,数量字段) VALUE('"&arr(i)&"',1)"
else'否则累加1
sql="UPDATE 表 SET 数量字段=数量字段+1 WHERE 产品ID字段="&arr(i)
end if
conn.execute(sql)
next
%>
偷麦 2009-08-20
  • 打赏
  • 举报
回复
2楼大侠 我基本上看明白了 你的是修改的 能实现一个功能 但是还差一个
有存在的话 就在数量上加个1 没有的话 就直接加入没有加入过的记录
toury 2009-08-20
  • 打赏
  • 举报
回复
你把产品的ID放到CHECKBOX的VALUE里,提交的时候勾选的产品就传到了购物车界面,然后一句SQL语句不就可以了吗?

选择界面:
<form method=post action="购物车界面.asp">
<%
rs.open ".........."
i=0
do while not rs.eof
response.write rs("产品名")&"<input type=checkbox id=myproduct"&i&" name=myproduct value="&rs("产品ID")&">"
i=i+1
rs.movenext
loop
%>
<input type=submit name=s value=提交>
</form>

购物车界面:
<%
myproductID=request.form("myproduct")
myproductID=replace(myproduct,", ",",")'去掉空格,得到类似"1,5,9,22,55"这样的产品ID字串

sql="UPDATE 表 SET 数量字段=数量字段+1 WHERE 产品ID IN("&myproductID&")"
conn.execute(sql)
%>

28,391

社区成员

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

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