Kütüphane Otomasyon Programı

Bir kütüphane otomasyon programı yazmaya çalışıyorum ama çözemediğim bir problem var.

def kitap_çıkar():
çıkartılacak_kitap=input(“Çıkarmak İstediğiniz Kitap İsmini Giriniz: “)
time.sleep(1)
print(”---------------------------------------------”)
print(çıkartılacak_kitap ,“Kitabı Listeden Çıkarmak istiyor Musunuz? (E/H)”)
çıkarma_seçimi=input()
if çıkarma_seçimi==“E” or çıkarma_seçimi==“e”:
print(“Çıkartılıyor Lütfen Bekleyiniz…”)
time.sleep(1.5)
cursor.execute(“DELETE FROM kitaplar WHERE kitapadı= ‘{}’”.format(çıkartılacak_kitap))
con.commit()
print(“İşleminiz Başarılı Bir Şekilde Tamamlanmıştır…”)
time.sleep(1.5)
print(“Başka Kitap Çıkarmak ister Misiniz? (E/H)”)
devam_edecekse=input()
if devam_edecekse==(“E”) or devam_edecekse==(“e”):
kitap_çıkar()
else:
print(“Kitap Başarılı Bir Şekilde Listenizden Çıkartılmıştır.”)
time.sleep(1)
print(“Ana Menüye Dönmek İçin ‘Enter’ Tuşuna Basınız”)

kitap sil kısmında yazdığım kod bu ama kitap databasede kayıtlı ise bu kısmı çalıştırsın değilse print(“Kitap listenizde mevcut değildir”) tarzı bif şey yazsın istiyorum ama bilgilerim yetersiz kaldı. Yardımcı olur musunuz?

select_query = "SELECT * FROM  kitaplar WHERE kitapadı = ?
curcor.execute(select_query, (kitapadı,)
kitap_bilgileri = cursor.fetchall()

if (len(kitap_bilgileri == 0):
    print("Kitap bulunamadı!")
else:
    print("Kitap bulundu!")
    # Do somethings

Yukarıda ki kodda kitaplar tablosunun içerisinde kitap adı x olan kitabın tüm verilerini alıyoruz. Ve fetchall() fonksiyonu yardımıyla kitap_bilgileri değişkenine atıyoruz. fetchall() fonksiyonu bize bir liste döner. Örneğin kütüphanede kitap bulunmuyorsa: [ ] bu şekilde boş bir liste yapısı dönecektir. Kitap bulunuyorsa [ (1. Kitap verileri), (2. Kitap verileri)…] şeklinde bir yapı dönecektir. Eğer kitap_bilgileri’nin uzunluğu 0’a eşitse aradığımız kitabı bulamadık demektir. Umarım anlatabilmişimdir mantığını.

Böyle bir kullanım işinizi görecektir fakat bazen fetchall() yerine fetchone() vs. kullanılıyor. Onu tam bilmiyorum, araştırıp görebilirsiniz.

@Safak_Sahin_Cayli1

Allah razı olsun vakit ayırıp çözüm üretmeye çalıştığınız için lakin
çıkartılacak_kitap=input()
şeklinde koda nasıl entegre edebilirim? Daha önce yukarıda yazdığınız şeyi for döngüsü ile denedim

çıkartılacak_kitap=input("Çıkartmak İstediğiniz Kitap İsminiz Giriniz: ")
cursor.execute("SELECT * FROM kitaplar")
    con.commit()
    data=cursor.fetchall()
for i in data
if i==çıkartılacak_kitap:
    kitap_çıkar()
else:
   print("Arattığınız Kitap Bulunamadı")

ama olmadı. Kitap çıkar fonksiyonunun içine girmiyor, sürekli else konumuna giriyordu.

…Teşekkür ederim…

çıkartılacak_kitap = input("Çıkartılacak kitap: ")

# Silmek istediğiniz kitabı sql sorgusunda belirtirseniz daha iyi olur, daha az kod yazarsınız. For döngüsü vs. kullanmak vakit kaybı.
select_query = "SELECT * FROM  kitaplar WHERE kitapadı = ?
curcor.execute(select_query, (çıkartılacak kitap,))
informations = cursor.fetchall()
# con.commit() fonksiyonunu sadece veritabanı üzerinde değişiklik yapacağımız zaman kullanırız. Örneğin veri ekleme vs.

# Üstteki kod ile alttaki kod aynı işlevi görür.
# select_query = "SELECT * FROM kitaplar WHERE kitapadı = {}".format(çıkartılacak_kitap)
# cursor.execute(select_query)
# informations = cursor.fetchall()

if (len(informations) == 0):
    print("Kitap bulunamadı!")
else:
    print("Kitap bulundu!")
    # Do somethings

Teşekkür ederim, bir deneyeyim Allah razı olsun tekrardan.

Eğer en az 20 karakter hatası alıyorsanız metnin başına veya sonuna <p></p> kodlarını 20 karakter olacak şekilde yazabilirsiniz… (@dildeolupbiten sayesinde öğrendim)