> 백엔드 개발 > PHP 튜토리얼 > PHP로 구현된 다양한 투표 방식을 갖춘 온라인 투표 시스템

PHP로 구현된 다양한 투표 방식을 갖춘 온라인 투표 시스템

WBOY
풀어 주다: 2023-08-08 08:10:01
원래의
1434명이 탐색했습니다.

PHP로 구현된 다양한 투표 방식을 갖춘 온라인 투표 시스템

인터넷 시대의 도래와 함께 사람들의 참여와 의견 표현에 대한 요구는 점점 더 강력해지고 있습니다. 온라인 투표 시스템은 그룹의 의견을 수집하고 민주적인 의사결정을 달성할 수 있는 편리하고 빠른 방법이 되었습니다.

이 글에서는 PHP 언어를 기반으로 다양한 투표 방식을 갖춘 온라인 투표 시스템을 소개하고 관련 코드 예제를 제공하겠습니다.

  1. 투표 시스템 요구 사항 분석
    온라인 투표 시스템을 설계하기 전에 시스템 요구 사항을 명확히 해야 합니다. 다음은 간단한 수요 분석 목록입니다.
  2. 단일 선택, 객관식 및 점수 투표 방법을 지원합니다.
  3. 사용자는 익명으로 투표할 수 있습니다.
  4. 관리자는 투표 주제를 만들고, 옵션을 편집하고, 투표 시간을 설정할 수 있습니다. 결과는 실시간으로 계산되고 표시될 수 있습니다.
  5. 데이터베이스 디자인
  6. 투표 관련 데이터를 저장하기 위해 MySQL 데이터베이스에 두 개의 테이블을 만듭니다. 다음은 테이블 구조의 예입니다.

  7. CREATE TABLE vote (
id int(11) NOT NULL AUTO_INCREMENT,

title code> varchar(255 ) NOT NULL,<code>vote (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
start_time datetime NOT NULL,
end_time datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE option (
id int(11) NOT NULL AUTO_INCREMENT,
vote_id int(11) NOT NULL,
content text NOT NULL,
PRIMARY KEY (id),
KEY vote_id (vote_id),
CONSTRAINT fk_vote_id FOREIGN KEY (vote_id) REFERENCES vote (id start_time datetime NOT NULL,
end_time datetime NOT NULL,

PRIMARY KEY(id)
    ) ENGINE=InnoDB DEFAULT CHARSET =utf8;

  1. CREATE TABLE 옵션 (
  2. id int(11) NOT NULL AUTO_INCREMENT,
vote_id int(11) ) NOT NULL,

content text NOT NULL,
PRIMARY KEY(id),
KEY vote_id(vote_id) ),
CONSTRAINT fk_vote_id FOREIGN KEY (vote_id) REFERENCES vote (id) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;



프런트엔드 디자인

투표 테마 표시, 옵션 선택, 투표 결과 표시 등 필요에 따라 사용자 인터페이스를 디자인하세요. 다음은 간단한 프런트 엔드 인터페이스 예입니다.

  1. // 투표 주제 표시
  2. echo "

    " . $vote['title'] "

    ";
// 옵션 선택 foreach ( $options as $option) {

echo "<input type='".$vote['type']."' name='option' value='".$option['id']."'>".$option['content']."</input><br/>";
로그인 후 복사

}

// 제출 버튼

echo "";


백엔드 구현

앞면에 따르면- 최종 디자인에서는 사용자 작업을 처리하고 투표 결과를 계산하는 배경 논리를 구현합니다. 다음은 간단한 PHP 코드 예입니다.

// 투표 제출

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$selectedOption = $_POST['option'];
// 根据选项类型进行不同的处理
if ($vote['type'] == 'radio') {
    // 单选投票
    $voteCount = 1;
} elseif ($vote['type'] == 'checkbox') {
    // 多选投票
    $voteCount = count($selectedOption);
} elseif ($vote['type'] == 'rating') {
    // 打分投票
    $totalRating = $_POST['total_rating'];
    $voteCount = 1;
}
// 更新选项表中的投票统计
foreach ($selectedOption as $optionId) {
    // 执行更新操作,计数+1
    // UPDATE option SET count = count + 1 WHERE id = $optionId
}
로그인 후 복사

}🎜// 투표 결과 쿼리 🎜$options = $db- >query("SELECT * FROM option WHERE vote_id = ".$vote['id'])->fetchAll();🎜foreach ($options as $option) {🎜
$votePercentage = ($option['count'] / $voteCount) * 100;
echo $option['content'] . ": " . $votePercentage . "%<br/>";
로그인 후 복사
🎜}🎜🎜위의 코드 예시를 통해 , 다양한 투표 방식을 갖춘 온라인 투표 시스템을 구현할 수 있습니다. 사용자는 투표 주제에 따라 선택하고 투표 결과를 제출할 수 있습니다. 관리자는 투표 주제를 생성하고 투표 결과를 실시간으로 확인할 수 있습니다. 🎜🎜요약하자면, PHP로 구현된 다양한 투표 방법을 갖춘 온라인 투표 시스템은 집단의 의견 표명과 민주적 의사결정에 대한 요구를 효과적으로 충족할 수 있습니다. 개발자는 실제 시나리오에 따라 시스템을 맞춤화하고 더 많은 투표 방법과 기능을 제공할 수 있습니다. 나는 온라인 투표 시스템의 활용이 우리 삶에 더 많은 편리함과 참여를 가져올 것이라고 믿습니다. 🎜

위 내용은 PHP로 구현된 다양한 투표 방식을 갖춘 온라인 투표 시스템의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿