현재 위치: > 최신 기사 목록> PHP 투표 시스템 구현 자습서 : 데이터베이스 디자인에서 코드 예제에 이르기까지

PHP 투표 시스템 구현 자습서 : 데이터베이스 디자인에서 코드 예제에 이르기까지

M66 2025-09-19

소개

인터넷의 지속적인 개발로 온라인 투표 기능은 점차 다양한 웹 사이트 및 플랫폼에서 중요한 대화식 방법이되었습니다. PHP 언어를 사용하여 사용자 투표, 결과 통계 및 관리자 관리 기능을 지원하는 기본 투표 시스템을 신속하게 구현할 수 있습니다. 이 기사에서는 데이터베이스 디자인에서 코드 구현에 이르기까지 투표 시스템의 구성 프로세스를 보여줍니다.

시스템 요구 사항

이 투표 시스템에는 주로 다음 기능이 포함됩니다.

  • 사용자는 투표 주제와 옵션을 볼 수 있습니다
  • 사용자는 자신이 좋아하는 옵션에 투표 할 수 있습니다
  • 사용자는 각 옵션의 투표 수를 볼 수 있습니다.
  • 같은 사용자가 반복적으로 투표 할 수 없습니다
  • 관리자는 투표 주제와 옵션을 추가, 수정 및 삭제할 수 있습니다.
  • 관리자는 투표 결과를 볼 수 있습니다

데이터베이스 디자인

위의 기능을 지원하려면 다음 데이터 테이블을 설계해야합니다.

  • vote_subjects : id , title , create_at를 포함한 투표 주제를 상점
  • vote_options : id , istour_id , 옵션_name , 투표를 포함한 상점 투표 옵션
  • 투표 : ID , Option_ID , IP_ADDRESS를 포함한 저장 사용자 투표 기록

코드 구현

투표 시스템을위한 주요 PHP 구현의 예는 다음과 같습니다.

데이터베이스에 연결 :

<?php
$host = 'localhost';
$db = 'vote_system';
$user = 'root';
$pass = '';
$conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
?>

쿼리 투표 주제 및 옵션 :

<?php
$sql = 'SELECT * FROM vote_subjects';
$stmt = $conn->쿼리 ($ SQL);
$ direds = $ stmt-> fetchall (pdo :: fetch_assoc);

foreach ($ 주제 $ 주제) {
    echo $ 주제 [ &#39;title&#39;]. &#39;<br> &#39;;;
    $ district_id = $ dired [ &#39;id&#39;];
    $ sql = "vote_options에서 gourde_id = $ giver_id에서 선택 * 선택 *;
    $ stmt = $ conn-> query ($ sql);
    $ 옵션 = $ stmt-> fetchall (pdo :: fetch_assoc);
    foreach ($ 옵션으로 $ 옵션) {
        echo $ 옵션 [ &#39;Option_Name&#39;]. &#39;:&#39;. $ 옵션 [ &#39;투표&#39;]. &#39;투표<br> &#39;;;
    }
}
?>

투표 로직 :

<?php
$subject_id = $_POST['subject_id'];
$option_id = $_POST['option_id'];
$ip_address = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT COUNT(*) FROM votes WHERE option_id = $option_id AND ip_address = '$ip_address'";
$stmt = $conn-> 쿼리 ($ SQL);
$ count = $ stmt-> fetchcolumn ();

if ($ count> 0) {
    에코 &#39;당신은 투표했습니다! &#39;;;
} 또 다른 {
    $ sql = "vote_options update vote_options set votes = votes + 1 여기서 id = $ option_id";
    $ conn-> exec ($ sql);

    $ sql = "투표에 삽입 (옵션_id, ip_address) 값 ($ 옵션_id, &#39;$ ip_address&#39;)";
    $ conn-> exec ($ sql);

    Echo &#39;투표는 성공했습니다! &#39;;;
}
?>

관리자 기능 예 :

<?php
// 투표 주제를 만듭니다
$title = $_POST['title'];
$sql = "INSERT INTO vote_subjects (title) VALUES ('$title')";
$conn-> exec ($ sql);

// 투표 옵션 생성 $ distring_id = $ _post [ &#39;istroud_id&#39;];
$ 옵션 _name = $ _post [ &#39;옵션_name&#39;];
$ sql = "vote_options에 삽입 (istod_id, option_name, votes) 값 ($ distric_id, &#39;$ 옵션 _name&#39;, 0)";
$ conn-> exec ($ sql);

// 투표 옵션 편집 $ id = $ _post [ &#39;id&#39;];
$ 옵션 _name = $ _post [ &#39;옵션_name&#39;];
$ sql = "update vote_options set option_name = &#39;$ 옵션_name&#39;여기서 id = $ id";
$ conn-> exec ($ sql);

// 투표 옵션을 삭제합니다 $ id = $ _post [ &#39;id&#39;];
$ sql = "vote_options에서 삭제 된 id = $ id";
$ conn-> exec ($ sql);
?>

요약

이 기사에서는 PHP, 데이터베이스 구조, 사용자 투표 논리 및 관리자 운영 예제를 다루는 간단한 투표 시스템의 구현 프로세스를 보여줍니다. 이 시스템은 기본적인 투표 요구를 충족시킬 수 있지만 실제 응용 프로그램에서는 실제 시나리오에 더 잘 적용하기 위해 보안 (예 : SQL 주입 보호 및 프론트 엔드 디스플레이 최적화를 추가해야합니다.