如何把字段中的值用|隔开后插入到新表对应的字段去

is9527 2010-11-30 11:49:22
表A字段如下
id
productid
uploadfiles

部分记录如下
1 100 111.jpg|111_s.jpg|222.jpg|222_s.jpg|444.jpg|444_s.jpg|666.jpg|666_s.jpg
2 101 123.jpg|123_s.jpg|345.jpg|345_s.jpg|568.jpg|568_s.jpg|990.jpg|990_s.jpg
3 105 234.jpg|234_s.jpg|667.jpg|667_s.jpg|880.jpg|880_s.jpg|324.jpg|324_s.jpg
4 106 558.jpg|558_s.jpg|321.jpg|321_s.jpg|545.jpg|545_s.jpg|770.jpg|770_s.jpg

表B字段如下
id
productid
smallimg
bigimg

现在的要求是,当传递productid到一个页面时,在这个页面要执行如下操作
1、判断表B中是否有productid等于这个参数的记录,如果有,则删除表B中所有productid等于参数的记录,然后执行第2步。
2、取出表A中productid等于参数的记录的uploadfiles这个字段的值,用split(1)的方法把111.jpg插入到表B中的一个新记录中去,赋值给该记录的bigimg字段,而111_s.jpg则赋值给该记录的smallimg字段,循环处理,把222.jpg插入到表B中的一个新记录中去,赋值给该记录的bigimg字段,而222_s.jpg则赋值给该记录的smallimg字段,直到把表A中该记录的uploadfiles的值都处理完毕。

完成操作后表B中的记录类似如下

3 101 111_s.jpg 111.jpg
4 101 222_s.jpg 222.jpg
5 101 444_s.jpg 444.jpg
6 101 666_s.jpg 666.jpg
9 106 558_s.jpg 558.jpg
10 106 321_s.jpg 321.jpg
11 106 545_s.jpg 545.jpg
12 106 770_s.jpg 770.jpg

这个该怎么实现呢?
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
is9527 2010-11-30
  • 打赏
  • 举报
回复
我是这么写的代码,但是出错了。
<!--#include file="Conn.asp" -->
<%
Dim Sql,Rs, ProductID
ProductID=request.querystring("ProductID")
Sql="Select Top 1 * From PE_Productimg Where ProductID="&ProductID&" Order By ProductID DESC"
Set Rs=Server.CreateObject("ADODB.RecordSet")
Rs.Open Sql,Conn,3,3
If Rs.Eof And Rs.Bof Then
Dim Sql1,Rs1,UploadFiles
Sql1="Select UploadFiles From PE_Product Where ProductID="&ProductID&" Order By ProductID DESC"
Set Rs1=Server.CreateObject("ADODB.RecordSet")
Rs1.Open Sql1,Conn,1,3
var str=Rs1("UploadFiles")
var str1=str.split("|")
j=LBound(str1)
var str2
for i=0 to j step 2
Dim Sql2,Rs2
Sql2="Select Top 1 * From PE_ProductImg Order By ID DESC"
Set Rs2=Server.CreateObject("ADODB.RecordSet")
Rs2.Open Sql2,Conn,1,3
Rs2.AddNew
Rs2("smallimg")=str2[0]
Rs2.Update
Rs2.Close
Set Rs2=Nothing
Rs1.Close
Set Rs1=Nothing
next
else
Conn.execute("Delete From Productimg Where ProductId="&ProductId&")
Dim Sql3,Rs3,UploadFiles
Sql3="Select UploadFiles From PE_Product Where ProductID="&ProductID&" Order By ProductID DESC"
Set Rs3=Server.CreateObject("ADODB.RecordSet")
Rs3.Open Sql3,Conn,1,3
var str=Rs3("UploadFiles")
var str1=str.split("|")
j=LBound(str1)
var str2
for i=0 to j step 2
Dim Sql4,Rs4
Sql4="Select Top 1 * From PE_ProductImg Order By ID DESC"
Set Rs4=Server.CreateObject("ADODB.RecordSet")
Rs4.Open Sql4,Conn,1,3
Rs4.AddNew
Rs4("smallimg")=str2[0]
Rs4.Update
Rs4.Close
Set Rs4=Nothing
Rs3.Close
Set Rs3=Nothing
netx
end if
Rs.Close
Set Rs=Nothing
Response.Write("<script>alert('完成操作!');</script>")
%>
Microsoft VBScript 编译器错误 错误 '800a0401'

语句未结束

/showpicture.asp,行 23

Rs2("smallimg")=str2[0]
--------------------^
is9527 2010-11-30
  • 打赏
  • 举报
回复
传递参数的时候只会传递一个值过去,比如productid=1,我列出
完成操作后表B中的记录类似如下

3 101 111_s.jpg 111.jpg
4 101 222_s.jpg 222.jpg
5 101 444_s.jpg 444.jpg
6 101 666_s.jpg 666.jpg
9 106 558_s.jpg 558.jpg
10 106 321_s.jpg 321.jpg
11 106 545_s.jpg 545.jpg
12 106 770_s.jpg 770.jpg

指的是最终表B中可能的记录情况,不是传递一个参数过去就得到这样的记录。

28,391

社区成员

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

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