주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

단순 설문 조사 (통계)

네로 | 2001.12.21 14:13:15 댓글: 0 조회: 709 추천: 14
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758846
▶ 단순 설문 조사 (통계)

바로 전편에서 항목을 선택하면 투표값을 파일에 저장하는 부분까지 처리했습니다.
이제 이렇게 저장된 값을 가지고 그래프로 그려보도록 하겠습니다.

그래프는 이미지를 이용해 간단히 나타내도록 하겠습니다. ^^
(포토샵이나 페인트샵 등으로 그래프 이미지를 직접 만들어보세요~)

- 그래프 이미지 : http://dreamphp.com/study2/vote/graph.gif (50x10x256,1034byte)


순서대로 코드를 만들어볼까요?


▷ 파일에 저장된 투표값들을 불러옵니다.

$temp = file("vote.cgi");

이렇게 하면 해당 파일의 내용을 배열 단위로 가져올 수 있습니다. 현재 한줄만 있기
때문에 실제 값은 $temp[0]에 있겠죠?


▷ 총 투표수를 구한다.

이 값을 구하기 전에 가져온 값을 사용할 수 있도록 변환해야합니다. 파일에는
15:20:10:25:8 등과 같이 저장되어 있으니 :을 기준으로 분리해야합니다.

$vote_data = explode(":",$temp[0]);

그러면 $vote_data[0]부터 $vote_data[4]까지의 배열이 생기겠죠? 이 배열의 값들을
array_sum()이란 함수를 이용해 간단히 총합을 구할 수 있습니다.

$total = array_sum($vote_data);


▷ 백분율을 구합니다.

하나의 항목에 대해 "투표수 / 총투표수 * 100" 이렇게 계산한 값이 백분율이 됩니다.

$항목1의백분율 = $vote_data[0] / $total * 100;


▷ 이 값을 이용해 그래프를 나타냅니다.

이미지 <img> 태그의 width 속성에 위에서 구한 백분율을 지정해주면 간편하게 길이를
나타낼 수 있습니다.


▷ 기본은 설명이 끝났습니다.

통계 기능의 구현에 있어 꼭 필요한 내용은 이미 설명을 마쳤습니다. 이제 for문과
기타 HTML 태그들을 이용해 (테이블) 보다 깔끔하게 그래프를 나타낸 예제를 보도록
하세요.

[result.php]
--------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=euc-kr'>
<title>::: 설문 조사 결과 :::</title>
<style>
<!--
body,td   { font-family:굴림체; font-size:9pt; }
a:link    { color:#666666; text-decoration:none; }
a:active  { color:#666666; text-decoration:none; }
a:visited { color:#666666; text-decoration:none; }
a:hover   { color:#666666; text-decoration:underline; }
-->
</style>
</head>
<body bgcolor='white' text='black'>
<h4>▷ 다음 중 좋아하는 게임 장르는?</h4>
<?

$vote_file = "vote.cgi"; // 파일명 지정
$item = array("① 액션/슈팅","② 롤플레잉","③ 어드벤쳐","④ 시뮬레이션","⑤ 퍼즐/퀴즈"); // 항목명 설정

$vote_temp = file($vote_file); // 파일의 내용 읽음
$vote_data = explode(":",chop($vote_temp[0])); // : 기준으로 분리
$total = array_sum($vote_data); // 배열의 합을 구함

echo "- 총 투표수 : $total 표n";

echo "<table border='0' cellpadding='2' cellspacing='1' width='100%' bgcolor='black'>n";
for ($i=0; $i<5; $i++) { // 범위 반복
  $per = sprintf("%3.2f",$vote_data[$i]/$total*100); // 백분율구함
  $p   = round($per); // 반올림값 계산
  echo "  <tr>
    <td bgcolor='#EEEEEE' title='투표수 : {$vote_data[$i]}표 ($per%)' style='cursor:hand;'> {$item[$i]}</td>
    <td bgcolor='#EEEEEE' width='50%'> <img src=graph.gif align='absmiddle' border='0' width='{$p}%' height='10'></td>
  </tr>n";
}
echo "</table>n";

?>
<br>
<center><a href='javascript:self.close();'>닫기</a></center>
</body>
</html>
--------------------------------------------------------------------------------
- 미리보기 : http://www.dreamphp.com/study2/vote (결과보기를 이용하세요)
- 소스보기 : http://www.dreamphp.com/study2/vote/result.phps


끝났습니다. ^^ 차근차근 실습해보세요.



* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:07)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >> 웹 프로그래밍
* 이동후 위치 : 웹 공부 >>

* 전설님에 의해서 게시물 이동되었습니다 (2004-05-30 17:12)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍
추천 (14) 선물 (0명)
첨부파일 다운로드 ( 1 )
vote2.zip | 4.3KB / 20 Download
IP: ♡.157.♡.150
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11847
관리자
2003-09-20
11397
관리자
2003-09-20
20526
지구인
2010-08-27
19328
지구인
2009-09-07
13649
SOLIDH
2010-01-29
15603
엔죠라이프
2004-10-07
16703
우추
2001-12-27
1869
우추
2001-12-27
1882
우추
2001-12-27
2240
우추
2001-12-27
3778
우추
2001-12-27
1983
우추
2001-12-27
2286
노아
2001-12-22
3611
네로
2001-12-21
709
네로
2001-12-21
564
네로
2001-12-21
609
네로
2001-11-25
743
김광식
2001-11-06
1073
김광식
2001-11-06
498
김광식
2001-11-06
556
김광식
2001-11-06
659
다음역은
2001-11-05
392
김광식
2001-11-04
5062
네로™
2001-10-29
601
노아
2001-10-27
1062
노아
2001-10-27
764
노아
2001-10-27
711
모이자 모바일