import mysql.connector
import tkinter as tk
from tkinter import PhotoImage
from tkinter import messagebox
from PIL import Image, ImageTk
from tkinter import ttk # for Treeview
def connect_to_db():
try:
return mysql.connector.connect(
host="localhost",
user="root",
password="12345678",
database="register"
)
except mysql.connector.Error as err:
messagebox.showerror("Database Error", f"Error: {err}")
return None
# Function to create a new user
def create_user(cursor, name, user_id):
try:
cursor.execute("INSERT INTO user (name, id) VALUES (%s, %s)", (name, user_id))
print("User created successfully.")
except mysql.connector.Error as err:
messagebox.showerror("Database Error", f"Error: {err}")
# Function to retrieve all user data
def get_all_users(cursor):
cursor.execute("SELECT * FROM user")
return cursor.fetchall()
# Function to retrieve a specific user by ID
def get_user(cursor, user_id):
cursor.execute("SELECT * FROM user WHERE id = %s", (user_id,))
return cursor.fetchone()
def register_user():
conn = connect_to_db()
if conn:
cursor = conn.cursor()
username = entry_name.get()
user_id = entry_id.get()
if username and user_id:
create_user(cursor, username, user_id)
conn.commit()
messagebox.showinfo("Registration", "Registration Successful!")
cursor.close()
conn.close()
else:
messagebox.showwarning("Input Error", "Please fill all fields")
conn.close()
def show_specific_record():
conn = connect_to_db()
if conn:
cursor = conn.cursor()
user_id = entry_specific_id.get()
if user_id:
user_data = get_user(cursor, user_id)
if user_data:
display_records([user_data])
else:
messagebox.showwarning("Not Found", "No record found for the given ID")
cursor.close()
conn.close()
else:
messagebox.showwarning("Input Error", "Please enter an ID")
def view_user():
def display_record_options():
view_window.destroy()
show_view_options()
def show_all_records():
def check_password():
if entry_password.get() == '12345678': #PASSCODE
conn = connect_to_db()
if conn:
cursor = conn.cursor()
records = get_all_users(cursor)
display_records(records)
cursor.close()
conn.close()
password_window.destroy()
else:
messagebox.showwarning("Invalid Password", "The password you entered is incorrect")
# PASSWORD WINDOW SETTING (VIEW ALL RECORD - ENTER PASSWORD)
password_window = tk.Toplevel(root)
password_window.title("Enter Password")
password_window.geometry("300x150")
img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
password_window.iconphoto(False, img)
password_window.resizable(False, False)
tk.Label(password_window, text="Enter Password", bg='lightblue').pack(pady=10)
entry_password = tk.Entry(password_window, show="*")
entry_password.pack(pady=5)
tk.Button(password_window, text="Submit", command=check_password, bg='blue', fg='white').pack(pady=10)
view_window = tk.Toplevel(root)
view_window.title("View Records")
view_window.geometry("400x300")
img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
view_window.iconphoto(False, img)
view_window.resizable(False, False)
bg_label = tk.Label(view_window, image=bg_photo)
bg_label.place(relwidth=1, relheight=1)
tk.Label(view_window, text="Choose an option", bg='lightblue').pack(pady=10)
all_button = tk.Button(view_window, text="View All Records", command=show_all_records, bg='blue', fg='white')
all_button.pack(pady=5)
specific_button = tk.Button(view_window, text="View Specific Record by ID", command=display_record_options, bg='blue', fg='white')
specific_button.pack(pady=5)
view_window.mainloop()
def show_view_options():
option_window = tk.Toplevel(root)
option_window.title("View Specific Record")
option_window.geometry("400x300")
option_window.resizable(False, False)
img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
option_window.iconphoto(False, img)
bg_label = tk.Label(option_window, image=bg_photo)
bg_label.place(relwidth=1, relheight=1)
tk.Label(option_window, text="Enter ID to View Record", bg='lightblue').pack(pady=10)
global entry_specific_id
entry_specific_id = tk.Entry(option_window)
entry_specific_id.pack(pady=5)
view_button = tk.Button(option_window, text="SUBMIT", command=show_specific_record, bg='blue', fg='white')
view_button.pack(pady=10)
option_window.mainloop()
def display_records(records):
display_window = tk.Toplevel(root)
display_window.title("Records")
display_window.geometry("500x400")
img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
display_window.iconphoto(False, img)
bg_label = tk.Label(display_window, image=bg_photo)
bg_label.place(relwidth=1, relheight=1)
tree = ttk.Treeview(display_window, columns=("Name", "ID"), show="headings")
tree.heading("Name", text="Name")
tree.heading("ID", text="ID")
tree.pack(fill=tk.BOTH, expand=True)
for record in records:
tree.insert("", "end", values=record)
def show_help():
messagebox.showinfo("Help", "This application allows you to register your Name and ID, and view your record by entering your ID.")
def show_contact():
messagebox.showinfo("Contact", "For support, please contact: Divyansh@gmail.com")
def exit_app():
root.destroy()
# Create the main window
root = tk.Tk()
root.title("Registration Form")
img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
root.iconphoto(False, img)
root.resizable(False, False)
root.geometry("600x500")
bg_image = Image.open(r"C:\Users\LIVA\Desktop\Image\GD1.png")
bg_image = bg_image.resize((600, 500))
bg_photo = ImageTk.PhotoImage(bg_image)
bg_label = tk.Label(root, image=bg_photo)
bg_label.place(relwidth=1, relheight=1)
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)
help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="Help", command=show_help)
menu_bar.add_cascade(label="Help", menu=help_menu)
contact_menu = tk.Menu(menu_bar, tearoff=0)
contact_menu.add_command(label="Contact", command=show_contact)
menu_bar.add_cascade(label="Contact", menu=contact_menu)
view_menu = tk.Menu(menu_bar, tearoff=0)
view_menu.add_command(label="View Records", command=view_user)
menu_bar.add_cascade(label="View Records", menu=view_menu)
exit_menu = tk.Menu(menu_bar, tearoff=0)
exit_menu.add_command(label="Exit", command=exit_app)
menu_bar.add_cascade(label="Exit", menu=exit_menu)
form_frame = tk.Frame(root, bg='lightblue', bd=5)
form_frame.place(relx=0.5, rely=0.3, anchor='center')
view_frame = tk.Frame(root, bg='lightblue', bd=5)
view_frame.place(relx=0.5, rely=0.7, anchor='center')
tk.Label(form_frame, text="Name", bg='lightblue').grid(row=0, column=0, padx=10, pady=5)
entry_name = tk.Entry(form_frame)
entry_name.grid(row=0, column=1, padx=10, pady=5)
tk.Label(form_frame, text="ID", bg='lightblue').grid(row=1, column=0, padx=10, pady=5)
entry_id = tk.Entry(form_frame)
entry_id.grid(row=1, column=1, padx=10, pady=5)
register_button = tk.Button(form_frame, text="Register", command=register_user, bg='blue', fg='white')
register_button.grid(row=2, columnspan=2, pady=10)
view_button = tk.Button(view_frame, text="View Record", command=view_user, bg='blue', fg='white')
view_button.grid(row=1, columnspan=2, pady=9, padx=18)
root.mainloop()