ホームページ >バックエンド開発 >PHPチュートリアル >オンライン質問回答における回答記録の閲覧・エクスポート機能の実装方法

オンライン質問回答における回答記録の閲覧・エクスポート機能の実装方法

王林
王林オリジナル
2023-09-24 12:12:361288ブラウズ

オンライン質問回答における回答記録の閲覧・エクスポート機能の実装方法

オンライン回答における回答記録の表示とエクスポートの機能は、データベースとプログラミング技術を利用して実現できます。この機能を実装する手順とコード例を以下に示します。

ステップ 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。