비밀번호

  • 단순 설문 조사 (통계)

  • 짧은주소 : http://dreamphp.com/s/c0eb

  • 작 성 자 : BiHonHomepage

  • 조 회 수 : 9298

  • 등 록 일 : 2001-12-20 22:58:45

  • ▶ 단순 설문 조사 (통계)

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

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

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


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

+ 이름

- 홈페이지

+ 내용

+ 비밀번호

* 4~20자

+ CAPTCHA

CAPTCHA Image [새로고침] (대소문자 무시)

  • 번호

  • 제목

  • 이름

  • 등록일

  • 조회수