PHP は Q&A Web サイトに質問投票機能を実装します
スマートフォンとインターネットの普及に伴い、Q&A Web サイトは人々が情報を入手し、知識を共有するための重要なプラットフォームになりました。これらの Q&A サイトの共通機能は質問投票です。ユーザーは投票によって質問の重要性と質を評価できるため、他のユーザーが価値のある質問をより適切に選別して見つけるのに役立ちます。
この記事では、PHPを使って簡単な質問投票機能を実装する方法を紹介します。 MySQL データベースを使用して質問と投票データを保存し、HTML と CSS を使用してフロントエンド ページを構築します。
まず、質問と投票のデータを保存するデータベースを作成する必要があります。データベースが「qavote」という名前で、「質問」と「投票」という 2 つのテーブルが含まれているとします。テーブルの定義は次のとおりです。
CREATE TABLE questions ( id INT(11) AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT NOT NULL ); CREATE TABLE votes ( id INT(11) AUTO_INCREMENT PRIMARY KEY, question_id INT(11) NOT NULL, vote_count INT(11) NOT NULL DEFAULT 0, FOREIGN KEY (question_id) REFERENCES questions(id) );
次に、質問投票を処理する PHP ページを作成する必要があります。このページに「vote.php」という名前を付けます。以下は、vote.php ページのコード例です。
<?php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "qavote"); // 检查数据库连接是否成功 if ($conn->connect_error) { die("数据库连接失败: " . $conn->connect_error); } // 检查是否传入了 question_id 和 action 参数 if (isset($_GET["question_id"]) && isset($_GET["action"])) { $question_id = $_GET["question_id"]; $action = $_GET["action"]; // 根据 action 参数执行相应的操作 if ($action == "upvote") { // 更新问题的投票数 $sql = "UPDATE votes SET vote_count = vote_count + 1 WHERE question_id = " . $question_id; $conn->query($sql); } elseif ($action == "downvote") { // 更新问题的投票数 $sql = "UPDATE votes SET vote_count = vote_count - 1 WHERE question_id = " . $question_id; $conn->query($sql); } } // 关闭数据库连接 $conn->close(); ?>
vote.php では、まずデータベースに接続し、次に question_id および action パラメーターが渡されたかどうかを確認します。 action パラメーターの値に基づいて、対応する質問の投票数を更新します。最後に、データベース接続を閉じます。例を簡略化するために、入力の検証とセキュリティを行わないことに注意してください。実際のアプリケーションでは、これらが必要です。
最後に、質問と投票結果を表示する HTML ページを作成する必要があります。以下は簡単な例です。
<!DOCTYPE html> <html> <head> <title>问题投票</title> <style> .question { margin-bottom: 20px; } </style> </head> <body> <?php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "qavote"); // 检查数据库连接是否成功 if ($conn->connect_error) { die("数据库连接失败: " . $conn->connect_error); } // 查询问题和投票数 $sql = "SELECT questions.id, questions.title, questions.content, votes.vote_count FROM questions LEFT JOIN votes ON questions.id = votes.question_id"; $result = $conn->query($sql); // 循环输出问题和投票结果 if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<div class='question'>"; echo "<h3>" . $row["title"] . "</h3>"; echo "<p>" . $row["content"] . "</p>"; echo "<p>投票数: " . $row["vote_count"] . "</p>"; echo "<a href='vote.php?question_id=" . $row["id"] . "&action=upvote'>赞同</a>"; echo "<a href='vote.php?question_id=" . $row["id"] . "&action=downvote'>反对</a>"; echo "</div>"; } } else { echo "暂无问题"; } // 关闭数据库连接 $conn->close(); ?> </body> </html>
上記の HTML ページでは、最初にデータベースに接続し、次に質問と投票の数をクエリし、クエリの結果に基づいて質問と投票結果を出力します。各質問には、ユーザーがクリックして投票できる「賛成」リンクと「反対」リンクが提供されています。実際のアプリケーションでは、ユーザーのログイン状態に基づいて投票許可を制御できます。
概要:
この記事では、PHP と MySQL を使用して、ナレッジ Q&A Web サイトに質問投票機能を実装する方法を学びました。質問と投票データを保存するデータベースを作成し、対応する PHP ページと HTML ページを作成しました。これは単純な例にすぎませんが、より完全で複雑な Q&A Web サイトを構築するための良い出発点となります。この記事があなたのお役に立てば幸いです!
以上がPHP は知識質疑応答 Web サイトに質問投票機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。