글저 장하기
이제 앞에서 배운 글쓰기에서 전송한 데이터를 저장해 보도록 하겠습니 다.
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
'지정한 쿼리로 데이터베이스를 연결해서 레코드셋 개체에 결과값을 저장합니다.
%>

여기 서.. 잠깐... Tip!!
위에 소스를 보시면.. 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이름이 바뀌는것입니다.
하하.. 이해가 되셨는지.. 모르겠네요.. ^^

쿼리의 결과가 불러져 왔습니다.
하지만, 이 쿼리의 결과로는 아무 데이터도 얻지 못합니다. 왜냐하면 아직 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 기타에서 이동 됨]
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 1830 |
갈색야생마
|
17년 전 | 2845 | |
| 1829 |
갈색야생마
|
17년 전 | 1596 | |
| 1828 |
갈색야생마
|
17년 전 | 1352 | |
| 1827 |
갈색야생마
|
17년 전 | 2019 | |
| 1826 |
갈색야생마
|
17년 전 | 1468 | |
| 1825 |
갈색야생마
|
17년 전 | 1408 | |
| 1824 |
갈색야생마
|
17년 전 | 1356 | |
| 1823 |
갈색야생마
|
17년 전 | 1567 | |
| 1822 |
갈색야생마
|
17년 전 | 2053 | |
| 1821 |
갈색야생마
|
17년 전 | 1437 | |
| 1820 |
갈색야생마
|
17년 전 | 1411 | |
| 1819 |
갈색야생마
|
17년 전 | 1214 | |
| 1818 |
갈색야생마
|
17년 전 | 1444 | |
| 1817 |
갈색야생마
|
17년 전 | 1170 | |
| 1816 |
갈색야생마
|
17년 전 | 1301 | |
| 1815 |
갈색야생마
|
17년 전 | 1561 | |
| 1814 |
갈색야생마
|
17년 전 | 1397 | |
| 1813 |
갈색야생마
|
17년 전 | 1295 | |
| 1812 |
갈색야생마
|
17년 전 | 1265 | |
| 1811 |
갈색야생마
|
17년 전 | 1380 | |
| 1810 |
갈색야생마
|
17년 전 | 1157 | |
| 1809 |
갈색야생마
|
17년 전 | 1210 | |
| 1808 |
갈색야생마
|
17년 전 | 1242 | |
| 1807 |
갈색야생마
|
17년 전 | 1313 | |
| 1806 |
갈색야생마
|
17년 전 | 1340 | |
| 1805 |
갈색야생마
|
17년 전 | 1344 | |
| 1804 |
갈색야생마
|
17년 전 | 1308 | |
| 1803 |
갈색야생마
|
17년 전 | 1627 | |
| 1802 | 17년 전 | 2962 | ||
| 1801 | 17년 전 | 3360 | ||
| 1800 | 17년 전 | 1456 | ||
| 1799 | 17년 전 | 1550 | ||
| 1798 | 17년 전 | 1366 | ||
| 1797 | 17년 전 | 2123 | ||
| 1796 | 17년 전 | 3044 | ||
| 1795 | 17년 전 | 1386 | ||
| 1794 | 17년 전 | 1375 | ||
| 1793 |
갈색야생마
|
17년 전 | 1374 | |
| 1792 |
갈색야생마
|
17년 전 | 1224 | |
| 1791 |
갈색야생마
|
17년 전 | 1419 | |
| 1790 |
갈색야생마
|
17년 전 | 1475 | |
| 1789 |
갈색야생마
|
17년 전 | 1285 | |
| 1788 |
갈색야생마
|
17년 전 | 2567 | |
| 1787 |
갈색야생마
|
17년 전 | 1314 | |
| 1786 |
갈색야생마
|
17년 전 | 1590 | |
| 1785 |
갈색야생마
|
17년 전 | 1467 | |
| 1784 |
갈색야생마
|
17년 전 | 1774 | |
| 1783 |
갈색야생마
|
17년 전 | 1796 | |
| 1782 | 17년 전 | 1807 | ||
| 1781 | 17년 전 | 1854 | ||
| 1780 | 17년 전 | 1515 | ||
| 1779 | 17년 전 | 1605 | ||
| 1778 |
갈색야생마
|
17년 전 | 1515 | |
| 1777 |
갈색야생마
|
17년 전 | 1861 | |
| 1776 |
갈색야생마
|
17년 전 | 1771 | |
| 1775 |
갈색야생마
|
17년 전 | 1567 | |
| 1774 |
갈색야생마
|
17년 전 | 1743 | |
| 1773 |
갈색야생마
|
17년 전 | 1410 | |
| 1772 |
갈색야생마
|
17년 전 | 1640 | |
| 1771 |
갈색야생마
|
17년 전 | 1961 | |
| 1770 |
갈색야생마
|
17년 전 | 2791 | |
| 1769 | 17년 전 | 1997 | ||
| 1768 | 17년 전 | 1410 | ||
| 1767 | 17년 전 | 1953 | ||
| 1766 | 17년 전 | 2408 | ||
| 1765 | 17년 전 | 1564 | ||
| 1764 | 17년 전 | 2328 | ||
| 1763 |
sini117
|
17년 전 | 1762 | |
| 1762 |
sini117
|
17년 전 | 1469 | |
| 1761 |
nooree
|
17년 전 | 1324 | |
| 1760 | 17년 전 | 1996 | ||
| 1759 | 17년 전 | 2887 | ||
| 1758 | 17년 전 | 2503 | ||
| 1757 | 17년 전 | 1531 | ||
| 1756 | 17년 전 | 2876 | ||
| 1755 | 17년 전 | 2415 | ||
| 1754 | 17년 전 | 2755 | ||
| 1753 | 17년 전 | 2768 | ||
| 1752 | 17년 전 | 2557 | ||
| 1751 | 17년 전 | 2372 | ||
| 1750 | 17년 전 | 1729 | ||
| 1749 | 17년 전 | 2464 | ||
| 1748 | 17년 전 | 3960 | ||
| 1747 |
|
17년 전 | 1837 | |
| 1746 | 17년 전 | 3925 | ||
| 1745 | 17년 전 | 1852 | ||
| 1744 | 17년 전 | 1739 | ||
| 1743 | 17년 전 | 2072 | ||
| 1742 | 17년 전 | 2487 | ||
| 1741 | 17년 전 | 1441 | ||
| 1740 | 17년 전 | 1783 | ||
| 1739 | 17년 전 | 2335 | ||
| 1738 | 17년 전 | 1812 | ||
| 1737 | 17년 전 | 1771 | ||
| 1736 | 17년 전 | 1546 | ||
| 1735 | 17년 전 | 1390 | ||
| 1734 | 17년 전 | 1346 | ||
| 1733 | 17년 전 | 1163 | ||
| 1732 | 17년 전 | 1152 | ||
| 1731 | 17년 전 | 1179 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기