diff --git a/__pycache__/dbtable.cpython-311.pyc b/__pycache__/dbtable.cpython-311.pyc index 2cfa858..8f79877 100644 Binary files a/__pycache__/dbtable.cpython-311.pyc and b/__pycache__/dbtable.cpython-311.pyc differ diff --git a/dbtable.py b/dbtable.py index 1d08c37..62b955f 100644 --- a/dbtable.py +++ b/dbtable.py @@ -38,14 +38,6 @@ class DbTable: cur.execute(sql) self.dbconn.conn.commit() return - - def delete(self, val): - sql = "DELETE FROM " + self.table_name() - sql += " WHERE " + "".join(self.column_names_without_id()) - sql += "=" + "'" + "".join(val) + "';" - cur = self.dbconn.conn.cursor() - cur.execute(sql) - self.dbconn.conn.commit() def drop(self): sql = "DROP TABLE IF EXISTS " + self.table_name() @@ -66,7 +58,6 @@ class DbTable: cur = self.dbconn.conn.cursor() try: cur.execute(sql) - self.dbconn.conn.commit() except psycopg2.errors.UniqueViolation: self.dbconn.conn.rollback() return diff --git a/main.py b/main.py index 2a068b2..1cf95c4 100644 --- a/main.py +++ b/main.py @@ -138,11 +138,11 @@ class Main: if self.cath_id == -1: while True: name = input("Укажите название категории для вывода блюд (0 - отмена):") - while len(name.strip()) == 0: + while len(name.strip()) == '': name = input("Пустая строка. Повторите ввод! Укажите название категории для вывода блюд (0 - отмена):") if name == "0": return "1" - cath = CathTable().find_by_position(int(name)) + cath = CathTable().find_by_name(name) if not cath: print("Введено неверное название!") else: diff --git a/tables/__pycache__/cath_table.cpython-311.pyc b/tables/__pycache__/cath_table.cpython-311.pyc index d8e8f0f..8b568cb 100644 Binary files a/tables/__pycache__/cath_table.cpython-311.pyc and b/tables/__pycache__/cath_table.cpython-311.pyc differ diff --git a/tables/__pycache__/dish_table.cpython-311.pyc b/tables/__pycache__/dish_table.cpython-311.pyc index da22a23..f8401da 100644 Binary files a/tables/__pycache__/dish_table.cpython-311.pyc and b/tables/__pycache__/dish_table.cpython-311.pyc differ diff --git a/tables/cath_table.py b/tables/cath_table.py index 369e087..2b4e5b0 100644 --- a/tables/cath_table.py +++ b/tables/cath_table.py @@ -13,14 +13,25 @@ class CathTable(DbTable): def table_constraints(self): return ['CONSTRAINT "Name" UNIQUE (cath_name)'] - - def find_by_position(self, num): - - sql = "SELECT * FROM " + self.table_name() - sql += " ORDER BY " - sql += ", ".join(self.primary_key()) - sql += " LIMIT 1 OFFSET %(offset)s" + def delete(self, val): + sql = "DELETE FROM " + self.table_name() + sql += " WHERE " + "".join(self.column_names_without_id()) + sql += "=" + "'" + "".join(val) + "';" cur = self.dbconn.conn.cursor() - cur.execute(sql, {"offset": num - 1}) + cur.execute(sql) + self.dbconn.conn.commit() + + def find_by_name(self, name): + cur = self.dbconn.conn.cursor() + + sql_sel = "SELECT id FROM " + self.table_name() + sql_sel += " WHERE cath_name = " + "'" + name + "'" + ";" + cur.execute(sql_sel) + # sql = "SELECT * FROM " + self.table_name() + # sql += " ORDER BY " + # sql += ", ".join(self.primary_key()) + # sql += " LIMIT 1 OFFSET %(offset)s" + # cur.execute(sql, {"offset": num - 1}) + # print(cur) return cur.fetchone()