Heim > Backend-Entwicklung > PHP-Tutorial > Erstellen Sie mit PHP eine leistungsstarke Online-Abstimmungsplattform

Erstellen Sie mit PHP eine leistungsstarke Online-Abstimmungsplattform

WBOY
Freigeben: 2023-08-08 10:58:02
Original
960 Leute haben es durchsucht

Erstellen Sie mit PHP eine leistungsstarke Online-Abstimmungsplattform

Verwenden Sie PHP, um eine leistungsstarke Online-Abstimmungsplattform zu erstellen

Einführung:
Mit der Entwicklung des Internets ist Online-Abstimmung zu einer gängigen und bequemen Möglichkeit geworden, Meinungen zu sammeln und Entscheidungen zu treffen. In diesem Artikel werden wir PHP verwenden, um eine leistungsstarke Online-Abstimmungsplattform zu erstellen, die es Benutzern ermöglicht, einfach an der Abstimmung teilzunehmen und die Ergebnisse anzuzeigen. Wir werden eine Kombination aus HTML, CSS und PHP verwenden, um diese Funktionalität zu erreichen.

Schritt 1: Erstellen Sie eine Datenbank
Zuerst müssen wir eine Datenbank erstellen, um wahlbezogene Daten zu speichern. Wir können die MySQL-Datenbank verwenden, um diese Aufgabe zu erfüllen. Erstellen Sie in MySQL eine Datenbank mit dem Namen „voting_platform“ und erstellen Sie darin zwei Tabellen: eine zum Speichern von Abstimmungsfragen und -optionen und eine weitere zum Speichern von Abstimmungsergebnissen der Benutzer.

Erstellen Sie eine Tabelle mit Abstimmungsfragen und -optionen:

CREATE TABLE questions (questions (
id int(11) NOT NULL AUTO_INCREMENT,
question varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE options (
id int(11) NOT NULL AUTO_INCREMENT,
question_id int(11) NOT NULL,
option varchar(255) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (question_id) REFERENCES questions (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建用户投票结果表:

CREATE TABLE votes (
id int(11) NOT NULL AUTO_INCREMENT,
question_id int(11) NOT NULL,
option_id int(11) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (question_id) REFERENCES questions (id) ON DELETE CASCADE,
FOREIGN KEY (option_id) REFERENCES options (id id int(11) NOT NULL AUTO_INCREMENT,
question varchar( 255) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE options (

id code> int(11) NOT NULL AUTO_INCREMENT,<br> <code>question_id int(11) NOT NULL,

option varchar(255) NOT NULL,

PRIMARY KEY (id code>),<br> FOREIGN KEY (<code>question_id) REFERENCES questions (id) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;🎜 🎜Erstellen Sie eine Benutzerabstimmungsergebnistabelle: 🎜🎜CREATE TABLE votes (🎜 id int(11) NOT NULL AUTO_INCREMENT,🎜 question_id int( 11) NOT NULL,🎜 option_id int(11) NOT NULL,🎜 PRIMARY KEY (id),🎜 FOREIGN KEY (question_id) REFERENCES fragen (id) ON DELETE CASCADE,🎜 FOREIGN KEY (option_id) REFERENZEN options (id code> ) ON DELETE CASCADE🎜) ENGINE=InnoDB DEFAULT CHARSET=utf8;🎜🎜Schritt 2: Erstellen Sie die Seite der Abstimmungsplattform🎜Als nächstes können wir mit der Erstellung der Front-End-Seite der Abstimmungsplattform beginnen. Wir werden HTML und CSS verwenden, um eine schöne und benutzerfreundliche Oberfläche zu erstellen. Auf der Seite zeigen wir die Abstimmungsfragen und -optionen an und stellen dem Benutzer eine Abstimmungsschaltfläche zur Auswahl zur Verfügung. Gleichzeitig werden wir auch die Abstimmungsergebnisse anzeigen. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:html;toolbar:false;'>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;在线投票平台&lt;/title&gt; &lt;style&gt; /* 样式定义 */ &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;在线投票平台&lt;/h1&gt; &lt;?php // 连接到数据库 $conn = new mysqli('localhost', 'username', 'password', 'voting_platform'); // 检查连接是否成功 if ($conn-&gt;connect_error) { die(&quot;连接数据库失败: &quot; . $conn-&gt;connect_error); } // 查询投票问题和选项 $sql = &quot;SELECT id, question FROM questions&quot;; $result = $conn-&gt;query($sql); if ($result-&gt;num_rows &gt; 0) { // 输出投票问题 while($row = $result-&gt;fetch_assoc()) { echo &quot;&lt;h2&gt;&quot; . $row[&quot;question&quot;] . &quot;&lt;/h2&gt;&quot;; // 查询投票选项 $sql = &quot;SELECT id, option FROM options WHERE question_id=&quot; . $row[&quot;id&quot;]; $options = $conn-&gt;query($sql); if ($options-&gt;num_rows &gt; 0) { // 输出投票选项 while($option = $options-&gt;fetch_assoc()) { echo &quot;&lt;input type='radio' name='option_&quot; . $row[&quot;id&quot;] . &quot;' value='&quot; . $option[&quot;id&quot;] . &quot;'&gt;&quot; . $option[&quot;option&quot;] . &quot;&lt;br&gt;&quot;; } } echo &quot;&lt;button onclick='vote(&quot; . $row[&quot;id&quot;] . &quot;)'&gt;投票&lt;/button&gt;&quot;; } } // 关闭数据库连接 $conn-&gt;close(); ?&gt; &lt;h2&gt;投票结果&lt;/h2&gt; &lt;?php // 连接到数据库 $conn = new mysqli('localhost', 'username', 'password', 'voting_platform'); // 检查连接是否成功 if ($conn-&gt;connect_error) { die(&quot;连接数据库失败: &quot; . $conn-&gt;connect_error); } // 查询投票结果 $sql = &quot;SELECT questions.id, questions.question, options.option, COUNT(votes.id) as count FROM questions JOIN options ON questions.id = options.question_id LEFT JOIN votes ON options.id = votes.option_id GROUP BY options.id&quot;; $result = $conn-&gt;query($sql); if ($result-&gt;num_rows &gt; 0) { // 输出投票结果 while($row = $result-&gt;fetch_assoc()) { echo &quot;&lt;p&gt;&quot; . $row[&quot;question&quot;] . &quot;&lt;br&gt;&quot;; echo $row[&quot;option&quot;] . &quot;: &quot; . $row[&quot;count&quot;] . &quot; 票&lt;/p&gt;&quot;; } } // 关闭数据库连接 $conn-&gt;close(); ?&gt; &lt;script&gt; // 使用AJAX发送投票请求 function vote(questionId) { var options = document.getElementsByName('option_' + questionId); var selectedOptionId; for (var i = 0; i &lt; options.length; i++) { if (options[i].checked) { selectedOptionId = options[i].value; break; } } if (selectedOptionId) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { alert(&quot;投票成功!&quot;); location.reload(); // 刷新页面以更新投票结果 } else { alert(&quot;投票失败!&quot;); } } }; xhr.open('POST', 'vote.php', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('question_id=' + questionId + '&amp;option_id=' + selectedOptionId); } else { alert(&quot;请选择一个选项进行投票!&quot;); } } &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Schritt 3: Verarbeiten Sie die Abstimmungsanfrage🎜Erstellen Sie eine PHP-Datei mit dem Namen „vote.php“, um die Abstimmungsanfrage zu verarbeiten und die Ergebnisse in der Datenbank zu speichern. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;?php // 获取问题ID和选项ID $questionId = $_POST['question_id']; $optionId = $_POST['option_id']; // 连接到数据库 $conn = new mysqli('localhost', 'username', 'password', 'voting_platform'); // 检查连接是否成功 if ($conn-&gt;connect_error) { die(&quot;连接数据库失败: &quot; . $conn-&gt;connect_error); } // 插入投票结果到数据库 $sql = &quot;INSERT INTO votes (question_id, option_id) VALUES ($questionId, $optionId)&quot;; if ($conn-&gt;query($sql) === TRUE) { echo &quot;投票成功!&quot;; } else { echo &quot;投票失败!&quot;; } // 关闭数据库连接 $conn-&gt;close(); ?&gt;</pre><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Fazit: 🎜Durch die oben genannten Schritte haben wir erfolgreich eine leistungsstarke Online-Abstimmungsplattform erstellt. Benutzer können Fragen und entsprechende Optionen zum Abstimmen auswählen und auch die Abstimmungsergebnisse anzeigen. Mithilfe von PHP und einer Datenbank haben wir eine einfache, aber leistungsstarke Abstimmungsplattform implementiert, die ein praktisches und effizientes Tool für die Entscheidungsfindung und Meinungssammlung bietet. 🎜

Das obige ist der detaillierte Inhalt vonErstellen Sie mit PHP eine leistungsstarke Online-Abstimmungsplattform. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage