現在の位置: ホーム> 最新記事一覧> PHPは、多様化された投票方法を備えたオンライン投票システムを実現し、単一選択、複数選択、スコアリングの投票をサポートします

PHPは、多様化された投票方法を備えたオンライン投票システムを実現し、単一選択、複数選択、スコアリングの投票をサポートします

M66 2025-06-12

PHPによって実装された多様な投票方法を備えたオンライン投票システム

インターネット時代の出現により、参加に対する人々の意見表現に対する人々の要求はますます強くなっています。迅速かつ便利な方法として、オンライン投票システムは、民主的な意思決定とグループ意見のコレクションの重要なツールになりました。

この記事では、PHP言語に基づいて多様化した投票方法をサポートするオンライン投票システムを実装する方法を紹介し、開発者が独自の投票プラットフォームを実現できるように完全なコード例を提供します。

投票システムの要件分析

オンライン投票システムを設計するとき、最初に行うことは、システムのニーズを明確にすることです。簡単な要件分析は次のとおりです。
  1. 単一選択、複数選択、スコアリングの投票方法をサポートします。

  2. ユーザーは匿名で投票できます。

  3. 管理者は、投票トピックを作成し、オプションを編集し、投票時間を設定できます。

  4. システムは、投票結果をリアルタイムでカウントおよび表示できます。

データベース設計

投票データを保存するために、MySQLデータベースに2つのメインデータテーブルを作成しました。「投票」テーブルは投票トピック情報を保存するために使用され、「オプション」テーブルは投票オプションを保存するために使用されます。

これら2つのテーブルの構造の例を次に示します。

テーブル投チケットするを作成します(
  id int(11)null auto_incrementではない、
  タイトルvarchar(255)nullではありません、
  start_time dateTime noll、null、
  end_time dateTimeはnullではありません、
  ホストキー(ID)
)Engine = InnoDBデフォルトcharset = utf8;
テーブルオプションを作成します(
  id int(11)null auto_incrementではない、
  lote_id int(11)nullではありません、
  コンテンツテキストはnullではなく、
  ホストキー(ID)、
  key hote_id(bote_id)、
  制限fk_vote_id外部のキー(投チケットする_id)参照チケット(ID)の削除カスケードの削除カスケード
)Engine = InnoDBデフォルトcharset = utf8;

フロントエンドデザイン

フロントエンドセクションは、投票テーマを表示し、ユーザーに投票オプションを選択し、投票結果を表示できるように設計されています。簡単なフロントエンドの実装の例は次のとおりです。
//投チケットするテーマディスプレイエコー "<h2> 「。$チケット[&#39;title&#39;]。」</h2> ";

//オプションforeach($ options as $ option){
  エコー」<input type='" . $vote['type'] . "' name='option' value='" . $option['id'] . "'> "。$ option [&#39;content&#39;]。」<br/> ";
}

//ボタンエコーを送信 "<input type='submit' value="投チケットするを提案しますします"> ";

バックエンドの実装

バックエンド部分の主なタスクは、ユーザーが提出した投票データを処理し、投票結果をリアルタイムで更新することです。これが簡略化されたPHPコードの例です。
//投チケットするを提案しますするif($ _server [&#39;request_method&#39;] == &#39;post&#39;){
  $ selectedOption = $ _post [&#39;option&#39;];

  //ハンドルif($チケット[&#39;type&#39;] == &#39;radio&#39;){
    //単一の選択投チケットする$ hotecount = 1;
  } elseif($チケット[&#39;type&#39;] == &#39;チェックボックス&#39;){
    //複数選択投チケットする$ hotecount = count($ selectedoption);
  } elseif($チケット[&#39;type&#39;] == &#39;rating&#39;){
    //スコア投チケットする$ TotalRating = $ _Post [&#39;Total_rating&#39;];
    $ hotecount = 1;
  }

  //投チケットする統計foreach($ selectedoption as $ optionid){
    //操作を更新しますしますの実行:更新しますオプションセットcount = count + 1ここでid = $ optionid
  }
}

投票結果をクエリします

投票が終了した後、システムは、オプションの投票数に基づいて、各オプションの投票率を計算して表示します。
//投チケットする結果$ options = $ db-> query( "select * from option where option where pots_id ="。$チケット[&#39;id&#39;]) - > fetchall();
foreach($ options as $ option){
  $ hotepercentage =($ option [&#39;count&#39;] / $ hotecount) * 100;
  echo $ option [&#39;content&#39;]。 ":"。 $ hotepercentage。 「%<br/> ";
}

要約します

上記のコードの例を介して、多様な投票方法をサポートするオンライン投票システムを構築できます。このシステムは、ユーザーの投票ニーズを満たすことができ、管理者にリアルタイムの投票統計機能を提供します。開発者は、実際のニーズに応じてシステムをさらにカスタマイズし、投票オプションと機能を追加して、オンライン投票システムをより柔軟で実用的にすることができます。