웹마스터 팁

초간단 허접설문조사 소스입니다.
여기서 설문관련 소스 찾을려니까 없는것 같아서 제가 간단하게 만들어 봤습니다.
허접하지만 필요한 분이 있으면 좋겠네요..

설문조사는 총 3개의 페이지로 이루어 집니다.
저는 poll.php, pollinsert.php, pollview.php 이렇게 파일명을 만들었습니다.

제일먼저 mysql db 테이블을 만들어야 겠죠..

CREATE TABLE poll (
id int(11) DEFAULT '0' NOT NULL auto_increment,
answer varchar(20) NOT NULL,
wdate int(11) NOT NULL,
ip varchar NOT NULL,
PRIMARY KEY (id)
);

이렇게 만들면 됩니다. 간단하죠 ^^;;

이제 페이지 소스를 보도록 하겠습니다.

첫번째, poll.php 는 설문페이지 입니다.
제가 만든것은 찬성,반대 두개이지만 더 추가하실수 있습니다.

============== poll.php 소스 ==========================

<html>
<head>
<title>설문조사</title>
<script language=javascript>
        function chkAnswer()
        {
                var Form = eval(document.form1);
                var chk = 0;
                if(Form.answer[0].checked == true) chk++;
                if(Form.answer[1].checked == true) chk++; //답변추가시 이곳에 번호순으로 추가하세요
                if(chk == 0) {
                        alert('선택해주세요. ^^');
                        return false;
                }
                Form.action = 'pollinsert.php';
                Form.submit();
        }

</script>
</head>
<body>
<form name=form1 method=post>
이거 찬성, 반대 말해봐봐~~~~  <br>

//답변추가시 이곳에 value를 번호순으로 추가하시면 됩니다.

찬성 <input type=radio name=answer value=1> <br>
반대 <input type=radio name=answer value=2> <br>  


<br>
<a href=javascript:; onClick="chkAnswer(); return false;">설문<a>

</form>
</body>
</html>



두번째, pollinsert.php
이 페이지는 poll.php에서 넘어 온 값을 db에 만든 poll이라는 테이블에 저장하도록 하는 페이지입니다.

============== pollinsert.php 소스 ==========================
<?
$board = "테이블명"; //이곳은 db에 만들었던 테이블명을 적으면 됩니다. 위에서 poll이라고 만들었죠..
$conn = mysql_connect("localhost","db아이디","db비번");
mysql_select_db("db이름", $conn);

$wdate = time();
$ip = getenv("REMOTE_ADDR");

/*
아래 부분은 설문에 중복참여를 방지하는 곳입니다.
현재는 막아 놓았는데 필요하시다면 풀면 됩니다. (// <-이것 제거)
현재 ip주소가 같은면 중복으로 되어 있는데 회원제일 경우 회원 아이디로
변경하셔도 무방합니다.
*/

//$res1 = mysql_query("SELECT ip FROM $board WHERE ip='$ip'",$conn);

// 중복참여 체크
//if(mysql_num_rows($res1)) {
//        @mysql_close($conn);
//echo("<script>alert('이미 이벤트에 참여하셧습니다.nn참여해주셔서 감사합니다.^^');history.back();</script>"); exit; }
        


// 설문 참여 성공 부분입니다. poll.php에서 넘어온 값이 이곳을 통해 db의 poll테이블에 저장니다.
$res2 = mysql_query("INSERT INTO $board (id,answer,wdate,ip) VALUES ('','$answer','$wdate','$ip')",$conn);

if(!$res2) dbError();

@mysql_close($conn);

echo("<script>alert('참여해주셔서 감사합니다.^^');self.location.href='pollview.php'</script>");
//설문을 마치고 돌아가는 페이지... (저는 설문결과보기가 되어 있는 pollview.php로 연결했습니다.
?>


세번째, pollview.php
이 페이지는 설문결과페이지입니다.
몇명이 설문에 응했는지 각번호(질문)를 몇분이 선택했는지 등이 나옵니다.

============== pollview.php 소스 ==========================

<?
$board = "테이블명"; //이곳은 db에 만들었던 테이블명을 적으면 됩니다. 위에서 poll이라고 만들었죠..
$conn = mysql_connect("localhost","db아이디","db비번");
mysql_select_db("db이름", $conn);

/*
각답변에 해당하는 번호를 선택하는 것입니다.
만약 답변이 더 많으면 번호순으로 더 늘리시면 됩니다.
*/
$res1 = mysql_query("select * from $board where answer=1", $conn);
$res2 = mysql_query("select * from $board where answer=2", $conn);

//각각 선택된답변이 몇개인지를 출력
$num1 = mysql_num_rows($res1);
$num2 = mysql_num_rows($res2);

$sum = $num1 + $num2; //전체적으로 답변된것이 몇개인지 출력 (즉 설문참여자가 총몇분인지 출력한다.)
//각 선택된 답변 백분율 구하기
$img1 = (int)(($num1*100)/$sum);
$img2 = (int)(($num2*100)/$sum);
echo("
<html>
<head>
<title>설문조사결과</title>
</head>
<table width=780 border=0 cellspacing=0 cellpadding=0 align=center>
        <tr><td>
                <table width=780 border=0 cellspacing=0 cellpadding=0 align=center><tr height=10><td></td></tr><tr height=1><td bgcolor=A4A4A4></td></tr><tr height=10><td></td></tr></table>
                <table width=780 border=0 cellspacing=0 cellpadding=0 align=center style='border:1px #999999 solid'>
                        <tr height=25><td colspan=4 bgcolor=666666 align=center><font color=FFFFFF><b> 결과  (총 : $sum 표)</b></font></td></tr>
                        <tr><td colspan=4 bgcolor=999999></td></tr>
                        <tr><td>찬성($num1)</td><td><img src='bar.gif' width='$img1' height='13'></td><td>$img1 %</td></tr>
                        <tr><td>반대($num2)</td><td><img src='bar.gif' width='$img2' height='13'></td><td>$img2 %</td></tr>
                </table>
        </td></tr>
</table>
</body>
</html>
");
?>


이렇게 끝입니다.. ^^;;
제목 글쓴이 날짜
심플한 원단위를 콤마로 나타내주기 [2] zentoo.com 2003.11.11
플래시느낌의 유동적인 메뉴 [9] jabusim 2003.11.13
동영상 오른쪽 버튼 방지 소스 입니다... [9] 김성목 2003.11.15
자바로 만들어진 계산기 [1] 현규웅 2003.11.20
팝업공지창 다시 안뜨게 하는 소스[날짜지정가능] [17] lemin 2003.11.20
3D 효과의 원형 거울을 띄우자. [6] 줄리앙 2003.11.21
익스플로러에서 인쇄 누르면 페이지 이동.... [3] 조한웅 2003.11.28
크리스마스 날짜 카운터 [1] keymove 2003.12.04
소스연구1 테이블 자동으로 늘었다 커지기 태클환영 [9] 박한웅 2003.12.04
오른버튼 누를때 메뉴 뜨게하기(깔끔버전) [5] file 2003.12.09
소스보기를 일부 차단하는 방법입니다. [12] Juny. 2003.12.12
들어갈때 시작페이지 설정하는거... [2] 쉿!비밀 2003.12.17
링크에 마우스를 올리면 배경 변하게 하는 소스 봉팀장 2003.12.30
화면 오른쪽 아래부분에 떠있는 메뉴 레이어(마우스 오버시 부메뉴 펼쳐짐) [7] 봉팀장 2003.12.30
[초간단 자바스크립트!] 아이프레임 이용한 이미지 갤러리(?) ∑Ztxy 2004.01.02
마우스 올리면 링크 텍스트를 무지개빛으로_12시20분 수정.;; [1] keymove 2004.01.06
아기창 자동으루 띄우고 엄마창 자동으루 죽이기 -_-;; [13] 후르츠 2004.01.09
[초간단 자바스크립트!] 홈페이지접속 시간,날짜 표시기 [3] ∑Ztxy 2004.01.09
Thinking In Java 2nd Edition file n25 2004.01.14
[초간단 자바스크립트(강의)!]나만의 익스플로러창 만들기[허접] [2] ∑Ztxy 2004.01.17