47
def get_topics():
with sqlite3.connect('topics.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT topic_name, npc_name FROM topics')
topics = {row[0]: row[1] for row in cursor.fetchall()}
return topics
Στη συνάρτηση get_user_name, στόχος είναι η ανάκτηση του μεγαλύτερου user id,
δηλαδή του τελευταίου χρήστη που καταχωρήθηκε.
Στο κομμάτι SELECT user_name FROM users
WHERE id = (SELECT MAX(id) FROM users),
με την ανάκτηση του τελευταίου id επιστρέφεται εν τέλη το όνομα του χρήστη που αφορά.
Με τη μέθοδο cursor.fetchone αποθηκεύεται το όνομα χρήστη στη μεταβλητή result.
Αν υπάρχει καταχώρηση ονόματος τότε επιστρέφεται result[0] δηλαδή το πρώτο στοιχείο, το
user_name, ειδάλλως η τιμή που θα επιστραφεί είναι None.
def get_user_name():
with sqlite3.connect('topics.db') as conn:
cursor = conn.cursor()
#get the user name from the user with the max id-last user
cursor.execute('''
SELECT user_name FROM users
WHERE id = (SELECT MAX(id) FROM users)
''')
result = cursor.fetchone()
if result:
#if there is a result return the user name
return result[0]
else:
#return None if no user is found
return None
Με τον ίδιο τρόπο επιστρέφεται και το ίδιο το id του χρήστη.
def get_last_user_id():
with sqlite3.connect('topics.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT MAX(id) FROM users')
result = cursor.fetchone()
if result and result[0] is not None:
return result[0]
else:
return None
Η get_answered_questions επιλέγει τις στήλες question (ερώτηση) και answer (απάντηση) από
τον πίνακα questions. Το topic και το user_id πρέπει να ταυτίζονται με τις ομώνυμες
παραμέτρους τους. Μέσω του cursor.fetchall επιστρέφονται όλα τα αποτελέσματα ως tuples.