>  기사  >  백엔드 개발  >  온라인 답변 문제에서 답변 기록 보기 및 내보내기 기능 구현 방법

온라인 답변 문제에서 답변 기록 보기 및 내보내기 기능 구현 방법

王林
王林원래의
2023-09-24 12:12:361258검색

온라인 답변 문제에서 답변 기록 보기 및 내보내기 기능 구현 방법

온라인 답변에서 답변 기록 보기 및 내보내기 기능은 데이터베이스 및 프로그래밍 기술의 도움으로 구현할 수 있습니다. 다음은 이 기능을 구현하는 단계와 코드 예제입니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.