▶ 단순 설문 조사 (통계)
바로 전편에서 항목을 선택하면 투표값을 파일에 저장하는 부분까지 처리했습니다.
이제 이렇게 저장된 값을 가지고 그래프로 그려보도록 하겠습니다.
그래프는 이미지를 이용해 간단히 나타내도록 하겠습니다. ^^
(포토샵이나 페인트샵 등으로 그래프 이미지를 직접 만들어보세요~)
- 그래프 이미지 : 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)
* 이동한 이유 :
* 원래의 위치 : 웹 공부 >>
* 이동후 위치 : 웹 공부 >> 웹 프로그래밍