안녕하세요.....
######## table1
---------------------
num | email |
2 | a |
3 | b |
4 | c |
5 | d |
9 | e |
10 | f |
11 | g |
12 | h |
....
....
3500 | ... |
이렇게 테이블에 값이 저장되어 있습니다...
하고자 하는것은
일단 num 값에는 처음에 1이 지워졌어 없고 2부터 시작할수도 있고 3부터 시작할수 있씁니다..
중간중간에 빠진값도 있고요....
나타내고자 하는것은 셀렉트 박스에
처음num번호 ~ 250개가 되는 마지막 num번호
다음num번호 ~ 250개가 되는 마지막 num번호
이렇게 하여 마지막 까지 계산하여 루프를 돌려 셀렉트 박스에 나타내고 싶습니다...
왕초보라서 도움을 요청합니다.... 고수님들 많이많이 도와주세요.... 제발 도와주세요...
********* 밑에 처럼하면 숫자가
처음num번호 ~ 250개가 되는 마지막 num번호
다음num번호 ~ 250개가 되는 마지막 num번호
로
2~260
261~515
이런식으로 250개씩 셀렉트 박스에 나타내주는것 되는데....
원래 하고자 하는 목적은 이 셀렉트 번호를 가져가서 해당되는 번호에서 번호까지 메일을 보내는것입니다.
그러므로 처음값과 250개가되는 num값이 정확해야되는데... 정확하지 않더군요...
단순히 그냥 250으로 나누어서 250개가 되는 번호만 찍은것 같은데...
제가 짠게 아니라 여기 게시판에 글올려는데 올라왔어 해보았는데 정확하지가 않아서요...
전체회원메일 250명씩 보낼때는 문제가 없는데...
남자 회원일때는 num값이 안맞아요 ㅠ.ㅠ
sql = "select count(num) from member where ssn2 like '1%' or ssn2 like '3%'"
이것이 남자회원 뽑아내는 쿼리입니다...
똑같이 적용을 해보았는데... num값이 250개되는 지점의 num값이 일치하지 않습니다.
여자회원도 일치하지 않더군요 ㅠ.ㅠ
select count(num) from member where ssn2 like '2%' or ssn2 like '4%'
num값이 시작되는 부분num ~ 정확하게 250개가되는 지점의 num값
이 와야합니다... 제발도와주세요...
************************************************************************
<%
set rs = con.Execute("SELECT COUNT(number) FROM test_number")
if not (rs.bof or rs.eof) then
recordCount = rs(0)
else
recordCount = 0
end if
rs.close
pageCount = int((recordCount-1)/250) +1
response.write "selectbox에 값넣기<br>"
response.write "<select name='aaa' size='1' style='width:140px'>" & vbcr
for i = 1 to pageCount
Qry = ""
Qry = Qry & "SELECT TOP 250 number FROM test_number WHERE number NOT IN ("
Qry = Qry & "SELECT TOP " & (int(i - 1) * 250) & " number FROM test_number ORDER BY number) "
Qry = Qry & "ORDER BY number"
set rs = con.Execute(Qry)
if not (rs.bof or rs.eof) then
numArray = rs.GetString(2,,,"#")
end if
rs.close
'분리
numArray = Split(numArray,"#")
'처음번호
FirstNumber = numArray(0)
'마지막번호
LastNumber = numArray(Ubound(numArray)-1)
response.write "<option value='" & FirstNumber & "'>" & FirstNumber & "~" & LastNumber & "</option>" &
vbcr
Erase numArray
next
response.write "</select>" & vbcr
con.close
set rs = nothing
set con = nothing
%>
===================================== 위에것으로 하면 250개식은 가지오는데...
단순히 250으로 나누어서... 그런데 문제가 정확한 num값을 가져와야 하는데 정확한
num값을 가져오지 못하더군요...
============ 밑에것으로 하면 정확한 num값을 가져오지만 나누어진 마지막 num값 rs.eof 일때
어떻게 가져오는지 어떻게 해야하는지 모르겠습니다.... ㅠ,ㅠ
좀 도와주세요. 정말 급하거라 고수님들 많이 도와주세요....
==============================================
------------------------------------------------------------------------
sql0 = "select num from member where ssn2 like '1%' or ssn2 like '3%' order by num"
set rss0 = server.CreateObject("ADODB.Recordset")
rss0.open sql0,dbcon,1
fn = 1 '250번째인지 아닌지를 구별 하기 위한 변수
DO While Not rss0.EOF
if fn = 1 then '만약 1이면
num = rss0("num")
else if fn = 250 then '만약 250이면
num_1 = rss0("num")
sq = "select top 1 num from member order by num desc"
set r0 = server.CreateObject("ADODB.Recordset")
r0.open sq,dbcon,1
else if rss0.eof then
num_1 = r0("num")
response.write "<OPTION>" & num & "~" & num_1 & "</OPTION>"
End if
End if
end if
if not rss0.eof then
if fn < 250 then 'fn이 250보다 작다면
fn = fn + 1
else if fn = 250 then
fn = 1 'fn 초기화--;;
End if
End if
else if rss0.eof then
if fn < 250 then
fn = fn + 1
end if
end if
end if
rss0.MoveNext
'if rss0.Eof then
'rss0.MovePrevious '마직막 레코드일때 --;; 다시 돌아감--;;;
'fn = 250 '마직막 레코드니까 fn을 250으로 줘서 값을 쓸수 있게 함--;;
'End if
Loop
rss0.Close
Set rss0 = Nothing
--------------------------------------------------------------------------
|