asp 저장하기

· 16년 전 · 1644
 arrow_dot.gif 글저 장하기
line_450.gif
 
  이제 앞에서 배운 글쓰기에서 전송한 데이터를 저장해 보도록 하겠습니 다.
  Request 개체를 이용하여 Form에서 전송된 값을 변수에 저장해보죠.
 
  <%
  name = request("name")
  email = request("email")
  url = request("url")
  title = request("title")
  content = request("content")
  pin = request("pin")
  tag = request("tag")
  %>
 
  위에 방법은 추천되는 방법중 하나 입니다.
 
  그 다음은 DB 를 연결해야겠죠??
  DB 연결부는 이렇게 적어줍니다. 참고로 ACCESS 연결부분입니다.
 
  <%
  Set db=Server.CreateObject("ADODB.Connection")
  '데이터베이스 연결을 위한 Connection 개체의 인스 턴스의 생성합니다.
  db.Open dbname
  '데이터베이스를 DSN을 이용해서 오픈합니 다.
  SQL="Select MAX(num) form " & session("table")
  '가져올 데이터의 쿼리문을 작성합니다.
  Set rs=Server.CreateObject("ADODB.Recordset")
  '레코드셋 개체의 인스턴스를 생성합니 다.
  rs.Open SQL, db
  '지정한 쿼리로 데이터베이스를 연결해서 레코드셋 개체에 결과값을 저장합니다.
  %>
 
line_450.gif
  arrow_dot.gif 여기 서.. 잠깐... Tip!!
line_450.gif
 
  위에 소스를 보시면.. db.Open dbname 이 있습니다.
 
  그곳은 원래 dbname 대신에 ("inno")가 들어가야합니다.
  하지만 저렇게 해 준거에도 다 이유가 있습니다.
  여러분이 저의 소스를 받아서 사용하실때나.. 아니면.. DB 이름이 맘에 안들 어서
  DB 이름을 수정하시고자 하실때.. DB 연결부분을 각 파일마다 수정해야하는 번거
  러움을 들어드리고자.. 저렇게 프로그래밍한겁니다.
 
  Write_ok.asp 파일의 윗부분에 보시면.. <!-- #include file="dbinfo.asp" -->
  이라는 부분이 있습니다. dbinfo.asp를 열어보시면 dbname 이 라는 변수가

  dbinfo.asp에서 불러져왔다는걸 알수 있습니다.
  모든 파일의 DB연결부분을 저런식으로 해주면.. DB이름을 변경하고 싶으실 때..
  dbinfo.asp을 열어서 dbname = "inno" 부분에서.. inno 대신 원하시는 이름을
  입력하시고.. 저장하시면.. 그 게시판의 각 소스의 db연결부분의 db이름이 바뀌는것입니다.
  하하.. 이해가 되셨는지.. 모르겠네요.. ^^
 
line_450.gif
 
  쿼리의 결과가 불러져 왔습니다.
  하지만, 이 쿼리의 결과로는 아무 데이터도 얻지 못합니다. 왜냐하면 아직 DB에 저장된 데이터가 없으니까 말이에요..
  그래서 아래의 소스가 그것을 체크하는 소스입니다. 쿼리에서 가져온 데이터 가 아무것도 없다면, 처음으로 들어오는 글이니까 num 변수에다가 1이라고 저장하고, 불러온 데이터가 있다면 그 값에 1을 더해서 num에 저장하라는 것입니다.
 
  <%
  if IsNULL(rs(0)) then
  '현재 가져온 데이터가 없을경우에는
    num = 1
  'num 변수에 1이라는 값을 저장하고
  else
  '그렇지 않을 경우.. 그러니까.. 가져온 데이터가 있 을경우..
    num = rs(0)+1
  '그 값에 1을 더해서 num 변수에 저장합니 다.
  end if
  %>
 
  <%
  if request("id") <> "" then
  '답변쓰기일경우
 
    re = Cint(request("re"))
    resame = Cint(request("resame"))
    reid = Cint(request("reid"))
 
  SQLString = " UPDATE " & session("table") & " SET reid = reid + 1 WHERE re = " & re & " AND reid > " & reid
  '이 부분 답변 글올리기에 있어 중요한 부분이에요. 답변이 들어올 자리의 reid 보다 큰 reid 의 값을 +1 시키는 부분이죠.
  '하지만 이런 식으로하면 답변 알고리즘에 약간의 문 제가 있어요.
  '자세한건 차차 이야기로 하고 넘어가죠.
  db.Execute(SQLString)
  '위에 update 문을 실행하는 부분이죠.
 
  newreid = reid + 1
  newresame = resame + 1
 
  else
  '답변쓰기가 아닐 경우
 
    re = num
  're의 값에 num 값을 넣습니다.
    newresame = 0
  'resame 에 0의 값을 넣습니다.
    newreid = 0
  'reid 값에 0을 넣습니다.
 
  end if
  %>
 
  그 다음은 폼에서 전송된 reqeust 값을 각 변수에 저장해 주는겁니다.
 
  <%
  ...
  name = request("name")
  url = request("url")
  ...
  %>
  이런식으로 저장을 해 주는거죠..
 
  <%
  if left(now,2) = "20" then
  'now라는 함수를 이용하여, 현재의 날짜와 시 간을 불러옵니다.
  '앞에서 2자리를 잘라서 20인 경우..
    writeday = mid(now,3)
  'now값의 3번째자리부터 writeday 라 는 변수에 저장합니다.
  else
  '위의 if 문의 조건이 아닌경우
    writeday = now
  'now함수의 값을 그대로 writeday 라 는 변수에 저장합니다.
  end if
 
  if left(url,7) = "http://" then
  'url 변수에 저장된 값의 7번째 자리까지 문자 가 'http://' 이면..
    url = mid(url,8)
  'http:// 라는 문자는 삭제하고 url 변수에 저장하라 는 거에요.
  '가끔씩 자동완성기능을 이용할때.. http:// 라는 값이 같이 들어가길래.. 지우지 않아도 된다는거죠.
  '자동으로 삭제해주니까... 하하.. ^^
  end if
  %>
 
  다음은 insert 문을 이용하여.. 폼에서 전송된 데이터를 DB에 저장하는 부분 입니다.
 
  <%
  SQL = "INSERT INTO " & session("table") & " (name,email,url,title,content,tag,pin,writeday,visit,num,re,resame,reid) VALUES "
  SQL = SQL & "('" & name & "'"
  SQL = SQL & ",'" & email & "'"
  SQL = SQL & ",'" & url & "'"
  SQL = SQL & ",'" & title & "'"
  SQL = SQL & ",'" & content & "'"
  SQL = SQL & ",'" & tag & "'"
  SQL = SQL & ",'" & pin & "'"
  SQL = SQL & ",'" & writeday & "'"
  SQL = SQL & "," & 0 & ""
  SQL = SQL & "," & num & ""
  SQL = SQL & "," & re & ""
  SQL = SQL & "," & newresame & ""
  SQL = SQL & "," & newreid & ")"
 
  db.Execute SQL
  %>
 
  이 부분이 가장 많은 에러가 나타나고, 초보 프로그래머님들이 가장 많이 막 히는 부분입니다. 주의 할 부분은.. 데이터 입력시 문자값 데이터는 앞뒤로 '(작음 따옴표)를 둘러주고 숫자값 데이터는 '(작음 따옴표) 없이 그냥 넣는다는 것입니다.
  간단한거면서도.. 저도 첨엔 많이 막히는 부분이었습니다.
 
  <%
  rs.close
  db.close
  Set rs = nothing
  Set db = nothing
  %>
 
  이렇게 해주면.. 글쓰기 저장하기 부분은 끝이 나는겁니다.
[이 게시물은 관리자님에 의해 2011-10-31 16:46:12 기타에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
16년 전 조회 5,372
16년 전 조회 2,492
16년 전 조회 5,981
16년 전 조회 1,957
16년 전 조회 4,029
16년 전 조회 3,046
16년 전 조회 2,231
16년 전 조회 2,250
16년 전 조회 4,410
16년 전 조회 3,312
16년 전 조회 2,846
16년 전 조회 2,987
16년 전 조회 2,103
16년 전 조회 1,784
16년 전 조회 1,699
16년 전 조회 1,417
16년 전 조회 1,688
16년 전 조회 1,917
16년 전 조회 1,616
16년 전 조회 4,854
16년 전 조회 3,843
16년 전 조회 1,809
16년 전 조회 1,551
16년 전 조회 2,296
16년 전 조회 4,528
16년 전 조회 3,566
16년 전 조회 2,592
16년 전 조회 4,352
16년 전 조회 3,217
16년 전 조회 1,370
16년 전 조회 1,388
16년 전 조회 2,050
16년 전 조회 1,896
16년 전 조회 2,578
16년 전 조회 2,245
16년 전 조회 1,386
16년 전 조회 4,398
16년 전 조회 1,496
16년 전 조회 1,795
16년 전 조회 2,221
16년 전 조회 3,855
16년 전 조회 2,749
16년 전 조회 1,506
16년 전 조회 4,028
16년 전 조회 1,412
16년 전 조회 1,592
16년 전 조회 1,261
16년 전 조회 1,732
16년 전 조회 1,633
16년 전 조회 1,645
16년 전 조회 1,435
16년 전 조회 2,190
16년 전 조회 1,828
16년 전 조회 1,984
16년 전 조회 2,196
16년 전 조회 1,485
16년 전 조회 2,320
16년 전 조회 2,266
16년 전 조회 4,545
16년 전 조회 1,309
16년 전 조회 1,063
16년 전 조회 2,022
16년 전 조회 1,992
16년 전 조회 1,526
16년 전 조회 2,052
16년 전 조회 2,289
16년 전 조회 1,403
16년 전 조회 1,744
16년 전 조회 1,934
16년 전 조회 1,028
16년 전 조회 1,707
16년 전 조회 1,421
16년 전 조회 1,918
16년 전 조회 1,336
16년 전 조회 2,217
16년 전 조회 1,907
16년 전 조회 5,883
16년 전 조회 1,930
16년 전 조회 3,696
16년 전 조회 1,482
16년 전 조회 1,771
16년 전 조회 2,083
16년 전 조회 2,625
16년 전 조회 2,321
16년 전 조회 2,764
16년 전 조회 3,006
16년 전 조회 3,026
16년 전 조회 1,833
16년 전 조회 1,556
16년 전 조회 1,427
16년 전 조회 1,740
16년 전 조회 1,219
16년 전 조회 1,979
16년 전 조회 1,749
16년 전 조회 1,624
17년 전 조회 1,312
17년 전 조회 2,185
17년 전 조회 3,243
17년 전 조회 2,176
17년 전 조회 1,756