diff --git a/src/dbfunc.py b/src/dbfunc.py
index 067b8ca0b9b1b6683a97c076f23bbb40c1c76ada..b337a0bcc1dfa9abbfaea97a792a6bbdd54dec5e 100644
--- a/src/dbfunc.py
+++ b/src/dbfunc.py
@@ -1,5 +1,4 @@
-import logging
-import mysql.connector
+import logging, json, mysql.connector
 from mysql.connector import errorcode
 
 # Vars
@@ -42,7 +41,7 @@ def getConnection(db=""):
             logging.error("Connected to server, without database.")
             return conn
         
-def selectFromTbl(table, dbname, *args):
+def selectFromTbl(table, dbname, *args) -> json:
     logging.debug(f"running slect statement with values: tablename='{table}'', dbname='{dbname}'', {args}")
     conn = getConnection(db=dbname)
     if conn != None:
@@ -57,13 +56,72 @@ def selectFromTbl(table, dbname, *args):
             dbcursor.execute(f"USE {dbname}")
             dbcursor.execute(SELECT_STATEMENT)
             logging.info("SELECT statement executed successfully.")
-            dataOut = dbcursor.fetchall()
-            logging.debug(f"dataOut: {dataOut}")
+            data = dbcursor.fetchall()
+            logging.debug(f"dataOut: {data}")
             dbcursor.close()
             conn.close()
+            data = json.dumps(data)
+            return data
         else:
             logging.error("conn not connected")
             raise ConnectionError()
     else:
         logging.error("conn returned NoneType")
         raise ConnectionAbortedError()
+    
+def selectFromTblWhere(table, dbname, condition, *args) -> json:
+    logging.debug(f"running select statement with values: tablename='{table}'', dbname='{dbname}'', {args}")
+    conn = getConnection(db=dbname)
+    if conn == None:
+        logging.error("conn returned NoneType")
+        raise ConnectionAbortedError()
+    if conn.is_connected():
+        SELECT_statement = "SELECT "
+        for arg in args:
+            SELECT_statement.append(f"{arg}, ")
+        SELECT_statement.removesuffix(", ")
+        SELECT_statement.append(f" from {table};")
+        
+        dbcursor = conn.cursor()
+        dbcursor.execute(f"USE {dbname}")
+        dbcursor.execute(SELECT_statement)
+        logging.info("SELECT statement executed successfully.")
+        data = dbcursor.fetchall()
+        logging.debug(f"dataOut: {data}")
+        dbcursor.close()
+        conn.close()
+        data = json.dumps(data)
+        return data
+    else:
+        logging.error("conn not connected")
+        raise ConnectionError()
+        
+    
+def saveToTbl(table, dbname, jsonData):
+    logging.debug(f"running update statment with values: tablename='{table}', dbname='{dbname}', data='{jsonData}'")
+    conn = getConnection(db=dbname)
+    if conn == None:
+        logging.error("conn returned NoneType")
+        raise ConnectionAbortedError()
+    if conn.is_connected():
+        logging.debug("MySQL Connection is established.")
+        INSERT_statement = f"INSERT INTO {table} ("
+        dictData = json.loads(jsonData)
+        keys = ""
+        values = ""
+        for key, value in dictData.items():
+            keys.append(f"{key}, ")
+            values.append(f"{value}, ")
+        INSERT_statement.append(f"{keys.removesuffix(", ")}) VALUES ({values.removesuffix(", ")});")
+        
+        dbcursor = conn.cursor()
+        dbcursor.execute(INSERT_statement)
+        conn.commit()
+        dbcursor.close()
+        
+        conn.close()
+        logging.debug("INSERT query executed with no issues.")
+    else:
+        logging.error("conn not connected")
+        raise ConnectionError()
+    
diff --git a/src/staffUser.py b/src/staffUser.py
index c770fe8a78b94a9a5df74ee76897d6ef93c8c391..9708deadad33aaca397cd3bedede64e33b1cabb1 100644
--- a/src/staffUser.py
+++ b/src/staffUser.py
@@ -1,6 +1,6 @@
-import logging
-import random
+import logging, json
 
+from .dbfunc import *
 from .cinemaObj import Cinema
 
 
@@ -55,8 +55,8 @@ class StaffUser(object):
     def manageBooking(self):
         raise NotImplementedError()
     
-    def updateFromDataBase(self) -> None:
-        # call dbFunc
+    def updateFromDataBase(self, userID) -> None:
+        selectFromTblWhere("tblUsers", "", f"user_id={userID}", "*")
         # gets dbData in form of json
         # convert to dict?
         # update self data with new values.