请教高手split的分割查询列表问题

jhxli 2009-10-06 01:29:29
商品相关属性统一保存在一个字段内,形如:颜色:白色|重量:1.2|形状:方形|

现在要按颜色、重量、形状等搜索 列出查询结果如:

ID 颜色 重量 体积 形 状
1 白色 1.2 方形
....................................

a.有些记录可能还没有或多出相关数据,如上例中体积。
b.记录中的属性不一定按顺序存储。
c.列出时要去掉冒号前的文字

感激不尽!
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
<%
a = "颜色:白色|重量:1.2|形状:方形|"
RetSt = Replace(a, " ", "")
RetSt = Replace(RetSt, ":", ":")
RetSt = Replace(RetSt, "颜色:", "Lcolor=""")
RetSt = Replace(RetSt, "重量:", "Lweight=""")
RetSt = Replace(RetSt, "体积:", "Lvolumn=""")
RetSt = Replace(RetSt, "形状:", "Lsharp=""")
RetSt = Replace(RetSt, "|", """"& VBCrLf)
Execute(RetSt)
response.write Lcolor
%>

可以用Execute
Dogfish 2009-10-14
  • 打赏
  • 举报
回复
可以留言给我。

我的代码没有检查边界。边界问题一般是分隔符出问题的。

[Quote=引用 5 楼 jhxli 的回复:]
感谢大家!
dogfish的怎么总是提示下标越界呢?
hookee的不错,ExecuteGlobal执行在我的asp页面程序里总是有些问题

有没有更好的办法啊?我会追加分数的
[/Quote]
jhxli 2009-10-13
  • 打赏
  • 举报
回复
感谢大家!
dogfish的怎么总是提示下标越界呢?
hookee的不错,ExecuteGlobal执行在我的asp页面程序里总是有些问题

有没有更好的办法啊?我会追加分数的
zsm1009 2009-10-06
  • 打赏
  • 举报
回复
d
hookee 2009-10-06
  • 打赏
  • 举报
回复
改一下, </tr>写成<tr>了

<table>
<tr>
<td>ID</td><td>颜色</td><td>重量</td><td>体积</td><td>形状</td>
</tr>
<%
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AA.mdb;"
Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Open "SELECT xxx FROM tbl",conn,1,1
n = 0
Do While Not rs.EOF
color = ""
weight = ""
volumn = ""
shape = ""
n = n + 1
v = Trim(rs(0).Value)
v = Replace(v, " ", "")
v = Replace(v, ":", ":")
If Right(v,1)<>"|" Then v = v & "|"
v = Replace(v, "颜色:", "color=""")
v = Replace(v, "重量:", "weight=""")
v = Replace(v, "体积:", "volumn=""")
v = Replace(v, "形状:", "shape=""")
v = Replace(v, "|", """" & VBCrLf)
ExecuteGlobal v
Response.Write "<tr><td>" & n & "</td>"
Response.Write "<td>" & color & "</td>"
Response.Write "<td>" & weight & "</td>"
Response.Write "<td>" & volumn & "</td>"
Response.Write "<td>" & shape & "</td></tr>"
rs.MoveNext
Loop
rs.Close
conn.Close
%>
</table>
hookee 2009-10-06
  • 打赏
  • 举报
回复

<table>
<tr>
<td>ID</td><td>颜色</td><td>重量</td><td>体积</td><td>形状</td>
</tr>
<%
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AA.mdb;"
Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Open "SELECT xxx FROM tbl",conn,1,1
n = 0
Do While Not rs.EOF
color = ""
weight = ""
volumn = ""
shape = ""
n = n + 1
v = Trim(rs(0).Value)
v = Replace(v, " ", "")
v = Replace(v, ":", ":")
If Right(v,1)<>"|" Then v = v & "|"
v = Replace(v, "颜色:", "color=""")
v = Replace(v, "重量:", "weight=""")
v = Replace(v, "体积:", "volumn=""")
v = Replace(v, "形状:", "shape=""")
v = Replace(v, "|", """" & VBCrLf)
ExecuteGlobal v
Response.Write "<tr><td>" & n & "</td>"
Response.Write "<td>" & color & "</td>"
Response.Write "<td>" & weight & "</td>"
Response.Write "<td>" & volumn & "</td>"
Response.Write "<td>" & shape & "</td><tr>"
rs.MoveNext
Loop
rs.Close
conn.Close
%>
</table>
Dogfish 2009-10-06
  • 打赏
  • 举报
回复
response.write "<Table>"
response.write "<tr>"
response.write "<td>ID</td>"
response.write "<td>颜色</td>"
response.write "<td>重量</td>"
response.write "<td>体积</td>"
response.write "<td>形状</td>"
response.write "</tr>"

a = "颜色:白色|重量:1.2|形状:方形|"
'初始数据
l_color=""
l_weight=""
l_sharp = ""
l_volumn = ""
ar = split(a,"|")

'组合数据
for i=0 to ubound(ar)
b = ar(i)
br = split(b,":")
if br(0)="颜色" then
l_color = br(1)
end if
if br(0)="重量" then
l_weight= br(1)
end if
if br(0)="形状" then
l_sharp = br(1)
end if
if br(0)="体积" then
l_volumn = br(1)
end if
next
'显示数据
response.write "<tr>"
response.write "<td>" & rs("id") & "</td>"
response.write "<td>" & l_color & "</td>"
response.write "<td>" & l_weight & "</td>"
response.write "<td>" & l_sharp & "</td>"
response.write "<td>" & l_volumn & "</td>"
response.write "</tr>"

response.write "</Table>"

28,406

社区成员

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

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