ホームページ >バックエンド開発 >PHPチュートリアル >オンライン質問回答における回答記録の閲覧・エクスポート機能の実装方法
オンライン回答における回答記録の表示とエクスポートの機能は、データベースとプログラミング技術を利用して実現できます。この機能を実装する手順とコード例を以下に示します。
ステップ 1: データベース テーブルを設計する
データベースに質問レコード テーブルと回答レコード テーブルを作成します。問題記録テーブルは、問題番号、問題内容、正解などの問題情報を格納するために使用されます。回答記録テーブルは、ユーザー ID、質問番号、ユーザーの回答と回答時間などを含むユーザーの回答記録を保存するために使用されます。
次は、質問レコード テーブルのサンプル コードです:
CREATE TABLE question ( id INT PRIMARY KEY, content TEXT, correct_answer TEXT );
次は、回答レコード テーブルのサンプル コードです:
CREATE TABLE answer ( id INT PRIMARY KEY, user_id INT, question_id INT, user_answer TEXT, answer_time TIMESTAMP );
ステップ 2: 質問を入力します。
プログラム内で提供 質問入力インターフェースでは、質問内容と正解を入力し、質問記録テーブルにデータを保存することができます。サンプル コードを次に示します:
def add_question(content, correct_answer): # 连接数据库 conn = mysql.connector.connect(user='username', password='password', host='localhost', database='db_name') cursor = conn.cursor() # 插入数据 sql = "INSERT INTO question (content, correct_answer) VALUES (%s, %s)" val = (content, correct_answer) cursor.execute(sql, val) # 提交并关闭连接 conn.commit() cursor.close() conn.close()
ステップ 3: アンサー レコードの表示
アンサー レコード表示インターフェイスがプログラムに提供されており、ユーザーはユーザー ID を入力して、ユーザーのアンサー レコードをクエリできます。以下はサンプル コードです:
def view_answer(user_id): # 连接数据库 conn = mysql.connector.connect(user='username', password='password', host='localhost', database='db_name') cursor = conn.cursor() # 查询数据 sql = "SELECT * FROM answer WHERE user_id = %s" val = (user_id,) cursor.execute(sql, val) result = cursor.fetchall() # 打印结果 for row in result: print("Question ID:", row[2]) print("User Answer:", row[3]) print("Answer Time:", row[4]) # 关闭连接 cursor.close() conn.close()
ステップ 4: 回答レコードのエクスポート
回答レコードのエクスポート機能がプログラムに提供されています。ユーザーは、すべての回答レコードをエクスポートするか、指定したユーザーの回答レコードをエクスポートするかを選択できます。データを CSV ドキュメントにエクスポートします。以下はサンプル コードです:
import csv def export_answer(user_id=None): # 连接数据库 conn = mysql.connector.connect(user='username', password='password', host='localhost', database='db_name') cursor = conn.cursor() # 查询数据 if user_id: sql = "SELECT * FROM answer WHERE user_id = %s" val = (user_id,) cursor.execute(sql, val) else: sql = "SELECT * FROM answer" cursor.execute(sql) result = cursor.fetchall() # 导出为CSV文件 with open('answer.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(["User ID", "Question ID", "User Answer", "Answer Time"]) writer.writerows(result) # 关闭连接 cursor.close() conn.close()
上記は、オンライン回答で回答記録の表示およびエクスポート機能を実装するためのいくつかの提案とコード例です。特定のニーズや開発環境に応じて、さらに最適化や変更を行うことができます。
以上がオンライン質問回答における回答記録の閲覧・エクスポート機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。