| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:[在线求助]如果从数据库中取出想要的数据
只看楼主 加入收藏
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
 问题点数:0 回复次数:9 
[在线求助]如果从数据库中取出想要的数据
我用的是access数据库,建有以下表:product(id,product),parts(id,productid.....),productid是通过多项选择递交的数据,里面显示的内容如:1, 2, 30, 43,类型是文本,现在想再读取出来反映在多项选择里。
如果内容只有1个数字。我已经实现了。程序如下:
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from parts where id="&request("id"),conn
%>
..........
<%
set cat=server.CreateObject("adodb.recordset")
cat.open "select * from product order by id desc",conn
do while not cat.eof
%>
<input type=checkbox name=productid id=productid value="<%=cat("id")%>"<%if cat("id")=int(rs("productid")) then%> checked<%end if%>><%=cat("product")%>
<%
cat.movenext
loop
cat.close
set cat=nothing
%>
.........
但如果是多个数字的话我不知道怎么写。我本来想用like写:先if "productid没有," then 用我读1个数字的方法,else 就用product表里的id看是否like parts里productid,如果有就在多项里显示checked end if
可是总是实现不了,请大虾指教~~夏天穿棉袄跪求!

[此贴子已经被作者于2006-7-21 12:20:38编辑过]

搜索更多相关主题的帖子: 数据库 在线 
2006-07-20 17:15
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 

11人看贴没人回。。顶起来先


Firever Zone
2006-07-20 23:39
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

product(id,product),
这个表的id字段是怎样存储的?
比如
第一种
id product
1 abc
2 def
3 ghj
第二种
id product
1,2,3 abc
5,6,7 def
8,9,10 ghj
其实如果是"1,2,3"
这样存储的可以用Split函数截取。


2006-07-21 08:25
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 
有新进展,基本实现但仍有问题
我现在把原来的多项选择改为如下语句,已经可以基本实现了
manage=rs("productid")
<input type=checkbox name=productid value=<%=cat("id")%> id=productid<%if instr(manage,cat("id"))>0 then%> checked<%end if%>><%=cat("product")%>

但似乎instr判断有些问题。当我cat("id")的值是20或者19之类多位数字时,会判断成20,2或者是1,9,19。。如何控制instr()的判断是整个数字的判断而不是单个数字的判断呢?
请大虾不吝赐教!

Firever Zone
2006-07-21 08:29
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 

斑竹好。id是用自动编号的。也就是第一种。

因为每个product对应1个id。。

[此贴子已经被作者于2006-7-21 8:31:31编辑过]


Firever Zone
2006-07-21 08:30
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

其实如果是规律的数字字符串比如"12,20,19,08"等,可以不用insert这样做应该也可以,但个人认为相对来说会写很多代码比较麻烦。如果用嵌套循环外加split函数的话
比如
<html>
<head>
<title></title>
</head>
<body>
<%
Dim WAry(6)
Dim IAry(6)
Dim i,j
WAry(0)="12,23,35,90,20,80"
WAry(1)="75,67,02,06,08,09"
WAry(2)="78,08,05,03,70,60"
WAry(3)="89,50,52,36,70,75"
WAry(4)="70,89,50,67,30,35"
WAry(5)="55,56,79,20,50,01"
IAry(0)="12"
IAry(1)="20"
IAry(2)="50"
IAry(3)="90"
IAry(4)="70"
IAry(5)="55"
For i=0 To UBound(WAry)
Dim TAry
TAry=Split(WAry(i),",")
For j=0 To UBound(TAry)
IF TAry(j)=IAry(j) Then
Response.Write "<input type=checkbox name=productid value="&IAry(J)&" id=productid checked >"
Else
Response.Write "<input type=checkbox name=productid value="&IAry(J)&" id=productid>"
End IF
Next
Next
%>
</body>
</html>
不只楼主是否想的是实现这种效果?

2006-07-21 08:47
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 

wary其实只有一个,因为我通过id=request("id")去出来了。但他的个数是不确定的。有可能是1个数字,也可能是多个数字,不过这个应该不影响分段。
iary是多个的。是从product表中读出的。这个可以do while not cat.eof来循环取。
现在我还在尝试,目前出现的情况是多项选择被重复了多次。比如:内容是2, 9
就出现第一次选出了2,然后又重复了所有选择选出了9。估计是我语句顺序没有放对。我再尝试一下。这个方法应该是可以的


Firever Zone
2006-07-21 10:02
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 
<%
manage=rs("productid")
strArray=Split(manage,",")
for each astr in strArray
set cat=server.CreateObject("adodb.recordset")
cat.open "select * from product order by id desc",conn
do while not cat.eof
%>
<input type=checkbox name=productid value="<%=cat("id")%>" id=productid<%if cat("id")=int(astr) then%> checked<%end if%>><%=cat("product")%>
<%
cat.movenext
loop
cat.close
set cat=nothing
next
%>
请斑竹帮忙看看问题在哪里。。

Firever Zone
2006-07-21 10:32
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 

自己的问题还是没解决。。。这个因为重复循环的问题还是不能实现想要的效果。。。哪位精通循环判断的大大来帮忙小弟一下。。。


Firever Zone
2006-07-21 12:04
firever
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-7-20
收藏
得分:0 

有个想法:

循环取id[]
循环取astr[]
if astr[]取完了 then 显示id[]不被选
else
if id[]=astr[] then 显示id[]被选 end if
end if

想问下斑竹其中astr[]取完了的条件该怎么比较好?
趴求

[此贴子已经被作者于2006-7-21 12:27:43编辑过]


Firever Zone
2006-07-21 12:17
快速回复:[在线求助]如果从数据库中取出想要的数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031526 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved