Veritabanına veri kaydetme

merhaba ben tkinter ile bir program yaptım fakat bir sorun var girilen bilgileri kayıt etmesini istiyorum kendi içinde bir dataya kayıt etsin istiyorum birçok kaynaa baktım çözüm bulamadım lütfen yardımcı olun butona basınca bilgileri kayıt etsin 1. pencere ise bir buton gelsin kayıt ettiğimiz kullancıyı göstermek için 2. sayfada kayıt edilen kişiyi 1. sayfada gözüksün üstüne basılınca o kişinin bilgileri açılsın

import tkinter

import sqlite3

baglanti=sqlite3.connect(“kisiler.db”)

imlec=baglanti.cursor()

imlec.execute(“CREATE TABLE IF NOT EXISTS bilgiler(İSİM_SOYİSİM TEXT,TC INT,ANA_ADI TEXT,BABA_ADI TEXT,DOGUM_TARİHİ INT,DOGUM_YERİ TEXT,SERİ_NO TEXT ,ADRES TEXT,ANNESİNİN_ANNESİ TEXT, ANNESİNİN_BABASI TEXT,ANNE_KIZLIK_SOYADI TEXT,BABASININ_BABASI TEXT,BABASININ_ANNESİ TEXT,TELEON_NO INT )”)

baglanti.commit()

def kayıtet():

imlec.execute("insert into bilgiler values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',)",[a,b,c,d,e,f,g,h,l,m,n,o,p,r])

baglanti.commit()

def kisiolustur():

tab2=tkinter.Tk()

tab2.title("Kişi Oluştur")

tab2.geometry("820x660")

tab2_label=tkinter.Label(tab2,text="İSİM_SOYİSİM")

tab2_label.place(x=10,y=40)

tab2_entry=tkinter.Entry(tab2,width="40")

tab2_entry.place(x=115,y=40)

tab3_label=tkinter.Label(tab2,text="T.C")

tab3_label.place(x=10,y=80)

tab3_entry=tkinter.Entry(tab2,width="40")

tab3_entry.place(x=115,y=80)

tab4_label=tkinter.Label(tab2,text="ANA ADI")

tab4_label.place(x=10,y=120)

tab4_entry=tkinter.Entry(tab2,width="40")

tab4_entry.place(x=115,y=120)



tab5_label=tkinter.Label(tab2,text="BABA ADI")

tab5_label.place(x=10,y=160)

tab5_entry=tkinter.Entry(tab2,width="40")

tab5_entry.place(x=115,y=160)

tab6_label=tkinter.Label(tab2,text="DOĞUM TARİHİ")

tab6_label.place(x=10,y=200)

tab6_entry=tkinter.Entry(tab2,width="40")

tab6_entry.place(x=115,y=200)

tab7_label=tkinter.Label(tab2,text="DOĞUM YERİ")

tab7_label.place(x=10,y=240)

tab8_entry=tkinter.Entry(tab2,width="40")

tab8_entry.place(x=115,y=240)

tab9_label=tkinter.Label(tab2,text="SERİ NO")

tab9_label.place(x=10,y=280)

tab10_entry=tkinter.Entry(tab2,width="40")

tab10_entry.place(x=115,y=280)

tab11_label=tkinter.Label(tab2,text="ADRES")

tab11_label.place(x=10,y=320)

tab12_entry=tkinter.Entry(tab2,width="100")

tab12_entry.place(x=115,y=320)

tab13_label=tkinter.Label(tab2,text="ANNESİNİN ANNESİ")

tab13_label.place(x=0,y=360)

tab14_entry=tkinter.Entry(tab2,width="40")

tab14_entry.place(x=115,y=360)

tab15_label=tkinter.Label(tab2,text="ANNESİNİN BABASI")

tab15_label.place(x=0,y=400)

tab16_entry=tkinter.Entry(tab2,width="40")

tab16_entry.place(x=115,y=400)

tab17_label=tkinter.Label(tab2,text="ANNE KIZLIK SOYADI")

tab17_label.place(x=0,y=440)

tab18_entry=tkinter.Entry(tab2,width="40")

tab18_entry.place(x=115,y=440)

tab19_label=tkinter.Label(tab2,text="BABASININ BABASI")

tab19_label.place(x=0,y=480)

tab20_entry=tkinter.Entry(tab2,width="40")

tab20_entry.place(x=115,y=480)

tab21_label=tkinter.Label(tab2,text="BABASININ ANNESİ")

tab21_label.place(x=0,y=520)

tab22_entry=tkinter.Entry(tab2,width="40")

tab22_entry.place(x=115,y=520)

tab23_label=tkinter.Label(tab2,text="TELEON NO:")

tab23_label.place(x=0,y=560)

tab24_entry=tkinter.Entry(tab2,width="40")

tab24_entry.place(x=115,y=560)

bilgiler=[]

tab2_button=tkinter.Button(tab2,text="BİLGİLERİ KAYIT ET",width=120,bg="red",font=16,command=kayıtet)

tab2_button.place(x=0,y=628)

tab2.mainloop()

tab1=tkinter.Tk()

tab1.geometry(“800x700”)

tab1_buton=tkinter.Button(text=“kisi ekle”,command=kisiolustur)

tab1_buton.pack()

tab1.mainloop()[quote=“Besir_Capkan, post:1, topic:13497, full:true”]
merhaba ben tkinter ile bir program yaptım fakat bir sorun var girilen bilgileri kayıt etmesini istiyorum kendi içinde bir dataya kayıt etsin istiyorum birçok kaynaa baktım çözüm bulamadım lütfen yardımcı olun butona basınca bilgileri kayıt etsin 1. pencere ise bir buton gelsin kayıt ettiğimiz kullancıyı göstermek için 2. sayfada kayıt edilen kişiyi 1. sayfada gözüksün üstüne basılınca o kişinin bilgileri açılsın

import tkinter

import sqlite3

baglanti=sqlite3.connect(“kisiler.db”)

imlec=baglanti.cursor()

imlec.execute(“CREATE TABLE IF NOT EXISTS bilgiler(İSİM_SOYİSİM TEXT,TC INT,ANA_ADI TEXT,BABA_ADI TEXT,DOGUM_TARİHİ INT,DOGUM_YERİ TEXT,SERİ_NO TEXT ,ADRES TEXT,ANNESİNİN_ANNESİ TEXT, ANNESİNİN_BABASI TEXT,ANNE_KIZLIK_SOYADI TEXT,BABASININ_BABASI TEXT,BABASININ_ANNESİ TEXT,TELEON_NO INT )”)

baglanti.commit()

def kayıtet():

imlec.execute("insert into bilgiler values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',)",[a,b,c,d,e,f,g,h,l,m,n,o,p,r])

baglanti.commit()

def kisiolustur():

tab2=tkinter.Tk()

tab2.title("Kişi Oluştur")

tab2.geometry("820x660")

tab2_label=tkinter.Label(tab2,text="İSİM_SOYİSİM")

tab2_label.place(x=10,y=40)

tab2_entry=tkinter.Entry(tab2,width="40")

tab2_entry.place(x=115,y=40)

tab3_label=tkinter.Label(tab2,text="T.C")

tab3_label.place(x=10,y=80)

tab3_entry=tkinter.Entry(tab2,width="40")

tab3_entry.place(x=115,y=80)

tab4_label=tkinter.Label(tab2,text="ANA ADI")

tab4_label.place(x=10,y=120)

tab4_entry=tkinter.Entry(tab2,width="40")

tab4_entry.place(x=115,y=120)



tab5_label=tkinter.Label(tab2,text="BABA ADI")

tab5_label.place(x=10,y=160)

tab5_entry=tkinter.Entry(tab2,width="40")

tab5_entry.place(x=115,y=160)

tab6_label=tkinter.Label(tab2,text="DOĞUM TARİHİ")

tab6_label.place(x=10,y=200)

tab6_entry=tkinter.Entry(tab2,width="40")

tab6_entry.place(x=115,y=200)

tab7_label=tkinter.Label(tab2,text="DOĞUM YERİ")

tab7_label.place(x=10,y=240)

tab8_entry=tkinter.Entry(tab2,width="40")

tab8_entry.place(x=115,y=240)

tab9_label=tkinter.Label(tab2,text="SERİ NO")

tab9_label.place(x=10,y=280)

tab10_entry=tkinter.Entry(tab2,width="40")

tab10_entry.place(x=115,y=280)

tab11_label=tkinter.Label(tab2,text="ADRES")

tab11_label.place(x=10,y=320)

tab12_entry=tkinter.Entry(tab2,width="100")

tab12_entry.place(x=115,y=320)

tab13_label=tkinter.Label(tab2,text="ANNESİNİN ANNESİ")

tab13_label.place(x=0,y=360)

tab14_entry=tkinter.Entry(tab2,width="40")

tab14_entry.place(x=115,y=360)

tab15_label=tkinter.Label(tab2,text="ANNESİNİN BABASI")

tab15_label.place(x=0,y=400)

tab16_entry=tkinter.Entry(tab2,width="40")

tab16_entry.place(x=115,y=400)

tab17_label=tkinter.Label(tab2,text="ANNE KIZLIK SOYADI")

tab17_label.place(x=0,y=440)

tab18_entry=tkinter.Entry(tab2,width="40")

tab18_entry.place(x=115,y=440)

tab19_label=tkinter.Label(tab2,text="BABASININ BABASI")

tab19_label.place(x=0,y=480)

tab20_entry=tkinter.Entry(tab2,width="40")

tab20_entry.place(x=115,y=480)

tab21_label=tkinter.Label(tab2,text="BABASININ ANNESİ")

tab21_label.place(x=0,y=520)

tab22_entry=tkinter.Entry(tab2,width="40")

tab22_entry.place(x=115,y=520)

tab23_label=tkinter.Label(tab2,text="TELEON NO:")

tab23_label.place(x=0,y=560)

tab24_entry=tkinter.Entry(tab2,width="40")

tab24_entry.place(x=115,y=560)

bilgiler=[]

tab2_button=tkinter.Button(tab2,text="BİLGİLERİ KAYIT ET",width=120,bg="red",font=16,command=kayıtet)

tab2_button.place(x=0,y=628)

tab2.mainloop()

tab1=tkinter.Tk()

tab1.geometry(“800x700”)

tab1_buton=tkinter.Button(text=“kisi ekle”,command=kisiolustur)

tab1_buton.pack()

tab1.mainloop()
[/quote]

850 milyar tane entry açmışsın da bu entry deki verileri nası çekmeyi planlıyosun ben mi göremedim acaba?

Mesela

tab24_entry=tkinter.Entry(tab2,width=“40”)

Bunu tab24_entry.get() ile yazdığın yazıyı çekip

https://python-istihza.yazbel.com/standart_moduller/sqlite.html
bu link teki gibi sqlite3 kullanarak kaydedebilirsin.

Hocam işte başka türlü kullancıdan nasıl bilgi alıcak her satırda bilgi alıyor bilgilerin girlidği kadarını databseye kayıt etsin istiyorum araştırdım yapamıyorum sen yapabiliyorsan bi el at gözünü seveyim bu arada hayırlı bayramlar

Merhabalar.
Kodunuzu şuraya göre düzenleyip atarsanız kodunuzu deneyebiliriz ve size daha kolay yardımcı oluruz.

Merhaba,

Kodun doğru şeklini şöyle yazalım;

import tkinter

import sqlite3

baglanti=sqlite3.connect("kisiler.db")

imlec=baglanti.cursor()

imlec.execute("CREATE TABLE IF NOT EXISTS bilgiler(İSİM_SOYİSİM TEXT,TC INT,ANA_ADI TEXT,BABA_ADI TEXT,DOGUM_TARİHİ INT,DOGUM_YERİ TEXT,SERİ_NO TEXT ,ADRES TEXT,ANNESİNİN_ANNESİ TEXT, ANNESİNİN_BABASI TEXT,ANNE_KIZLIK_SOYADI TEXT,BABASININ_BABASI TEXT,BABASININ_ANNESİ TEXT,TELEON_NO INT )")

baglanti.commit()

def kayıtet():

    imlec.execute("insert into bilgiler values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s',)",[a,b,c,d,e,f,g,h,l,m,n,o,p,r])

    baglanti.commit()
def kisiolustur():

    tab2=tkinter.Tk()

    tab2.title("Kişi Oluştur")

    tab2.geometry("820x660")

    tab2_label=tkinter.Label(tab2,text="İSİM_SOYİSİM")

    tab2_label.place(x=10,y=40)

    tab2_entry=tkinter.Entry(tab2,width="40")

    tab2_entry.place(x=115,y=40)

    tab3_label=tkinter.Label(tab2,text="T.C")

    tab3_label.place(x=10,y=80)

    tab3_entry=tkinter.Entry(tab2,width="40")

    tab3_entry.place(x=115,y=80)

    tab4_label=tkinter.Label(tab2,text="ANA ADI")

    tab4_label.place(x=10,y=120)

    tab4_entry=tkinter.Entry(tab2,width="40")

    tab4_entry.place(x=115,y=120)



    tab5_label=tkinter.Label(tab2,text="BABA ADI")

    tab5_label.place(x=10,y=160)

    tab5_entry=tkinter.Entry(tab2,width="40")

    tab5_entry.place(x=115,y=160)

    tab6_label=tkinter.Label(tab2,text="DOĞUM TARİHİ")

    tab6_label.place(x=10,y=200)

    tab6_entry=tkinter.Entry(tab2,width="40")

    tab6_entry.place(x=115,y=200)

    tab7_label=tkinter.Label(tab2,text="DOĞUM YERİ")

    tab7_label.place(x=10,y=240)

    tab8_entry=tkinter.Entry(tab2,width="40")

    tab8_entry.place(x=115,y=240)

    tab9_label=tkinter.Label(tab2,text="SERİ NO")

    tab9_label.place(x=10,y=280)

    tab10_entry=tkinter.Entry(tab2,width="40")

    tab10_entry.place(x=115,y=280)

    tab11_label=tkinter.Label(tab2,text="ADRES")

    tab11_label.place(x=10,y=320)

    tab12_entry=tkinter.Entry(tab2,width="100")

    tab12_entry.place(x=115,y=320)

    tab13_label=tkinter.Label(tab2,text="ANNESİNİN ANNESİ")

    tab13_label.place(x=0,y=360)

    tab14_entry=tkinter.Entry(tab2,width="40")

    tab14_entry.place(x=115,y=360)

    tab15_label=tkinter.Label(tab2,text="ANNESİNİN BABASI")

    tab15_label.place(x=0,y=400)

    tab16_entry=tkinter.Entry(tab2,width="40")

    tab16_entry.place(x=115,y=400)

    tab17_label=tkinter.Label(tab2,text="ANNE KIZLIK SOYADI")

    tab17_label.place(x=0,y=440)

    tab18_entry=tkinter.Entry(tab2,width="40")

    tab18_entry.place(x=115,y=440)

    tab19_label=tkinter.Label(tab2,text="BABASININ BABASI")

    tab19_label.place(x=0,y=480)

    tab20_entry=tkinter.Entry(tab2,width="40")

    tab20_entry.place(x=115,y=480)

    tab21_label=tkinter.Label(tab2,text="BABASININ ANNESİ")

    tab21_label.place(x=0,y=520)

    tab22_entry=tkinter.Entry(tab2,width="40")

    tab22_entry.place(x=115,y=520)

    tab23_label=tkinter.Label(tab2,text="TELEON NO:")

    tab23_label.place(x=0,y=560)

    tab24_entry=tkinter.Entry(tab2,width="40")

    tab24_entry.place(x=115,y=560)

    bilgiler=[]

    tab2_button=tkinter.Button(tab2,text="BİLGİLERİ KAYIT ET",width=120,bg="red",font=16,command=kayıtet)

    tab2_button.place(x=0,y=628)

    tab2.mainloop()
    tab1=tkinter.Tk()

    tab1.geometry("800x700")

    tab1_buton=tkinter.Button(text="kisi ekle",command=kisiolustur)

    tab1_buton.pack()

    tab1.mainloop()

kisiolustur()

Burada ihtiyacın olan tek şey kullanıcının girdiği bilgileri alıp veritabanına kayıt edecek fonksiyon.

Örnek;

def bilgileri_kayitet():
    imlec.execute("INSERT INTO bilgiler VALUES (?,?,?)",(tab2_entry.get(),tab3_entry.get(),tab4_entry.get()))

Bunu kendi programına göre uyarla ve sorunu ortadan kaldır.

Entry alanlarına girilen bilgileri .get() ile alırız. Sende oluşturduğun entry’lerin değişkenlerine .get() i ekle ve bilgileri çek. Hatta bir koşul sorgula;

if len(tab3_entry.get()) == 0:
    #buraya uyarı mesajı verecek bir kod yaz
else:
   #buraya çalışacak kodu yaz

Böylelikle eğer kullanıcı herhangi bir veri girmediyse sisteme boş kayıt yapmayacak.

1 Beğeni

hocam allah razı olsun şerefime ilaç gibi geldiniz bu formda yeniyim kodları nasıl nereye yazacağımı bilmiyorum rica ettsem var mı instagram veya başka bir platform sizin gibi bilgili insanlarla arkadaşlık kurmayı isterim

hocam bu kodu nereye yazmam gerekiyor bi yarddımcı olursanız çok sevindirirsiniz beni vallahi üste yazıyorum hata veriyor alta yazıyorum hata kişi eklenin içine yazıyorum her türlü hata veriyor


def bilgileri_kayitet():
    imlec.execute("INSERT INTO bilgiler VALUES (?,?,?)",(tab2_entry.get(),tab3_entry.get(),tab4_entry.get()))

Kodunuzdaki hata nedir ?

hocam hatayı halletim de kayıt yaıyor .jornal diye bir dosya oluşuyor sqqle bakıyorum kayıt etmemiş yazıklarımı

commit yapman ve veritabanını, programı kapatırken kapatman lazım. Böylelikle kayıt işlemini tamamlar

3 Beğeni

evet tam da dediğiniz gibi yaptım halloldu

peki size bahsetiğim 1. penceye nasıl entegre edicem bilgilerini yazıp kayıt ettiğimi 1. pencerede buton oluşsun butonun ismi kayıt ettiğimiz 1.entrdeki isim soyisim olcack sonrasında kullancıı örnek o butona basınca bastığı butonun bilgileri gözüksün bunu nasıl entegre ederiz valla bunu da halledersek on nuamra 5 yılddız olcak çok mutlu edersiniz şerefime

kayıt edilmiş bilgileri görmek mi istiyorsun?

Evet ama bu kayıt ettiklerimi bir butonda tutmak istiyorum her buton her bir kayıt edilmiş kişiyi göstersin butonun ismi de girilen bilgilerin isim

Bunu sizde bilmiyorsunuz galiba :joy:

Yapılır sıkıntı yok ama şöyle düşün; 100 tane kayıt girersen 100 tane buton olur. Bunun yerine veritabanında kayıtlı olan verileri çeker. Verilerin sadece isimlerini listeler ve kişiden hangi ismin bilgilerini görmek istediğini sorup bir entry alanı oluşturup kullanıcının girdiği ismi alıp veritabanında aratarak karşılık gelen bilgileri gösterebilrisin. Böylelikle bir sürü buton olmaz. Program karma karışık olmaz. Kullanıcı görmek istediği her veriye basitçe ulaşabilir ve görür.

Usta ya da bunu kayıt ettiklerinizi bir comboboxata yazdırsam isimleri sadece altına da bir buton isime gelince butona. Basınca bilgileri açılsın daha iyi olmaz mı

bunu nasıl yaabilirim yardımcı olur musun sqldeki sadece isimleri nasıl listeliyecem

Filtreleme yapmanızı tavsiye ederim. Kayıt sayısı arttıkça oluşturacağınız butonlar ve database de ki sorgular derken programınız epeyce ağırlaşacaktır.

1 Beğeni