단순 설문 조사 (통계) > 강의(과거자료)

본문 바로가기
사이트 내 전체검색

강의(과거자료)

단순 설문 조사 (통계)

페이지 정보

작성자 BiHon 댓글 0건 조회 9,390회 작성일 01-12-20 22:58

본문

▶ 단순 설문 조사 (통계)

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

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

- 그래프 이미지 : 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


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

댓글목록

등록된 댓글이 없습니다.

회원로그인


Copyright © 1998~2019 DreamPHP.com All rights reserved.