首頁 >後端開發 >php教程 >如何實現線上答案中的答題記錄檢視和匯出功能

如何實現線上答案中的答題記錄檢視和匯出功能

王林
王林原創
2023-09-24 12:12:361275瀏覽

如何實現線上答案中的答題記錄檢視和匯出功能

實現線上答案中的答案記錄檢視和匯出功能,可以藉助資料庫和程式設計技術來實現。以下是實現該功能的步驟和程式碼範例。

步驟一:設計資料庫表格
在資料庫中建立一個題目記錄表和一個答案記錄表。題目記錄表用於儲存題目的訊息,包括題目編號、題目內容和正確答案等。答題記錄表用於儲存使用者的答題記錄,包括使用者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
);

步驟二:錄入題目
在程式中提供錄入題目的介面,使用者可以輸入題目內容和正確答案,並將資料存入題目記錄表中。以下是範例程式碼:

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()

步驟三:答題記錄檢視
在程式中提供答題記錄檢視介面,使用者可以輸入使用者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()

步驟四:答題記錄匯出
在程式中提供答案記錄匯出功能,使用者可以選擇匯出所有答題記錄或指定使用者的答案記錄,並將資料匯出為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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn