SQLite veri sorgulama

sqlite de veri sorgulamak için deneme yaptım, ama çok küçük bir sorunum var çözemedim. Kişi ararken db de ilk sütunda ise "kişi var " yazıyor ama aradığım kişi db de 2 veya daha yüksek bir sütunda ise bulana kadar yok, yok, yok, var yok, yok yazıyor. Benim istediğim bir kerede var yada yok demesi.

import sqlite3
con = sqlite3.connect("bilgiler.db")
cursor = con.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS bilgiler (İsim TEXT, Soyisim TEXT)")
while True:
	print(""" 
1- Kişi Ekle
2- Kişi Ara


	""")
	işlem = input(">")
	if işlem == "1":
		print("-Kişi Ekle-")
		a = input("İsim: ")
		b = input("Soyisim: ")
		cursor.execute("INSERT INTO bilgiler VALUES(?,?)",(a,b))
		con.commit()
		print("{} {} eklendi...".format(a,b))
	if işlem == "2":
		print("-Kişi Sorgula-")
		c = input("isim: ")
		d = input("Soyisim: ")
		cursor.execute("SELECT İsim, Soyisim FROM bilgiler")
		veri = cursor.fetchall()
		for i in veri:	
			if c and d in i:
				print("Kisi var.")
				break
			else:
				print("Kisi yok.")
	else:
		pass

for döngüsünü kaldırın, yerine şunu yazın:

        if (c, d) in veri:
            print("Kisi var.")
        else:
            print("Kisi yok.")

Denedim ama dogru olsa “bile kişi” yok yazıyor.

Kodlar çalışıyor. Siz nasıl değiştirdiniz bir bakalım.

import sqlite3
con = sqlite3.connect("bilgiler.db")
cursor = con.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS bilgiler (İsim TEXT, Soyisim TEXT)")
while True:
	print(""" 
1- Kişi Ekle
2- Kişi Ara


	""")
	işlem = input(">")
	if işlem == "1":
		print("-Kişi Ekle-")
		a = input("İsim: ")
		b = input("Soyisim: ")
		cursor.execute("INSERT INTO bilgiler VALUES(?,?)",(a,b))
		con.commit()
		print("{} {} eklendi...".format(a,b))
	if işlem == "2":
		print("-Kişi Sorgula-")
		c = input("isim: ")
		d = input("Soyisim: ")
		cursor.execute("SELECT İsim, Soyisim FROM bilgiler")
		veri = cursor.fetchall()	
        if (c, d) in veri:
            print("Kisi var.")
        else:
            print("Kisi yok.")
	else:
		pass

İçteki if (c, d) in veri: bloku if işlem == "2": blokunun dışına çıkmış, girintiyi düzeltin, çalışır.

Ben yanlış anlamışım kusura bakmayın. :slight_smile:

Estağfurullah. Kolay gelsin.

1 Beğeni