请好友们百忙之中,进来帮忙看看如何编写这段asp代码
科目表 档案表
id title userName ExamId
1 语文 张 1,3,4,5
2 数学 李 2,4
3 英语
4 物理
5 化学
现在要显示的结果:
姓名 报考科目
张 语文|英语|物理|化学
李 数学|物理
请高手们百忙之中,帮忙看看。跪求ASP代码
------解决方案--------------------表这样设计的话,不是太好搞啊。处理过程太复杂。效率不高。
你把科目ID都写到一个字段中去了。这个是不太好读出来的。
建议你再建一个表,用户ID与科目ID的对应表。再联表来读。
------解决方案--------------------
set rs=conn.execute("select * from 档案表")
do while not rs.eof
response.Write rs("userName")&" -- "
ExamIds = split(rs("ExamId"),",")
for i=0 to ubound(ExamIds)
response.Write conn.execute("select title from 科目表 where id="&ExamIds(i))(0)&"
------解决方案--------------------
"
next
response.Write "<hr>"
rs.movenext
loop
set rs=nothing
------解决方案--------------------那要看你用的是什么数据库了
如果是 mysql (似乎现在比较流行这个),那么 mysql 提供了 find_in_set 函数
连接条件写作
find_inset(科目表.id, 档案表.ExamId)
再辅以 group_concat 函数就可轻松实现
若是 mssql或其他,你可以写成存储过程来实现