[PHP] 설문조사 프로그램 만들기 (4/4) - 설문조사 결과 확인하기

2022. 10. 29. 06:25무료강좌&튜토리얼/PHP

[PHP] 설문조사 프로그램 만들기 (4/4) - 설문조사 결과 확인하기

 

설문조사 결과를 확인하는 페이지를 만들어보자.

Survey 테이블의 모든 레코드를 불러온 후 종류별로 합계를 구하여 표시하는 방식으로 구현하도록 한다.

 

[예제: 191_surveyView.php ]

<?php
  include $_SERVER['DOCUMENT_ROOT'].'/php/common/171_session.php';
  include $_SERVER['DOCUMENT_ROOT'].'/php/common/179_checkSignSession.php';
  include $_SERVER['DOCUMENT_ROOT'].'/php/cssControlPanel/163_connection.php';

  $sql = "SELECT kind FROM survey";
  $result = $dbConnect->query($sql);

  if($result) {
    $surveyDataCount = $result->num_rows;

    $offlineStore = 0;
    $onlineStore = 0;
    $website = 0;
    $friends = 0;
    $academy = 0;
    $noMemory = 0;
    $etc = 0;

    if($surveyDataCount > 0) {
      for($i = 0; $i < $surveyDataCount; $i++) {
        $surveyData = $result->fetch_array(MYSQLI_ASSOC);

        switch($surveyData['kind']) {
          case 'offlineStore':
            $offlineStore++;
            break;
          case 'onlineStore':
            $onlineStore++;
            break;
          case 'website':
            $website++;
            break;
          case 'friends':
            $friends++;
            break;
          case 'academy':
            $academy++;
            break;
          case 'noMemory':
            $noMemory++;
            break;
          case 'etc':
            $etc++;
            break;
        }
      }
    } else {
      echo "데이터가 없습니다.";
      exit;
    }
  } else {
    echo "에러 발생 - 관리자에게 문의";
    exit;
  }
?>
<!DOCTYPE html>
<html lang="ko">
<head>
</head>
<body>
  <h1>설문조사 프로그램 - 결과</h1>  
  <h2>당신은 어떤 경로를 통해 책 정보얻나요?</h2>
  <h3>총 참여 인원 : <?=$surveyDataCount?></h3>
  <hr>
    오프라인 서점 - <?=$offlineStore?>명<br><br>
    온라인 서점 - <?=$onlineStore?>명<br><br>
    웹사이트 - <?=$website?>명<br><br>
    지인을 통해서 - <?=$friends?>명<br><br>
    교육기관 - <?=$academy?>명<br><br>
    기억이 안남 - <?=$noMemory?>명<br><br>
    기타 - <?=$etc?>명
</body>
</html>

1. survey 테이블에서 kind 필드의 데이터를 모두 불러오는 쿼리문을 생성한다.

2. 쿼리문을 실행하고 레코드의 수를 변수 surveyDataCount에 대입한다.

3. 변수 offlineStore 에는 survey 테이블의 kind 필드값이 offlineStore인 레코드의 합계를 대입한다.

4. 변수 oflineStore 에는 survey 테이블의 kind 필드값이 onlineStore인 레코드의 합계를 대입한다.

5. 변수 website에는 survey 테이블의 kind 필드값이 website인 레코드의 합계를 대입한다.

6. 변수 friends에는 survey 테이블의 kind 필드값이 friends인 레코드의 합계를 대입한다.

7. 변수 academy에는 survey 테이블의 kind 필드값이 academy인 레코드의 합계를 대입한다.

8. 변수 noMemory에는 survey 테이블의 kind 필드값이 noMemory인 레코드의 합계를 대입한다.

9. 변수 etc에는 survey 테이블의 kind 필드값이 etc인 레코드의 합계를 대입한다.10. survey 테이블의 레코드의 수 만큼 반복문을 작동시킨다.11. survey 테이블의 kind 필드값을 switch 문을 통하여 분류하여 각각의 변수에 1씩 더하여 더한값을 집계한다.12. 집계한 데이터를 출력한다.

 

실행 URL은 http://localhost/php/survey/191_surveyView.php 이다.

 

실행결과

보통 위와같은 수치 데이터는 그래프를 활용하여 출력한다.

다음 포스팅에서는 survey 테이블의 데이터를 구글 차트를 사용하여 차트로 표시하는 방법에 대해 알아보겠다.

 

 

 


 

 

 

초보자를 위한 PHP 200제
김태영 지음 | 정보문화사