Sqlite3 veritabanından rastgele veri çekmekte sorun yaşıyorum

Sqlite veritabanında tablom var ve içinde satırlar var. ben buradan rastgele bir satır seçmek istiyorum. araştırdım ve bir şeyler buldum. rastgele veri çekmek için yazdığım kod şöyle;

`import sqlite3
con = sqlite3.connect(“filmler.db”)
cursor= con.cursor()

def veri_cek():
cursor.execute(“select * from filmler order by RANDOM() LIMIT 1”)
con.commit()
veri_cek()
con.close()`

kod çalıştırıldığında “Process finished with exit code 0” yazısı çıkıyor. nerede yanlış yapıyorum, nasıl yapmalıyım? yardımcı olabilir misiniz?

Cektigin veriyle bir sey yapmiyorsun.

onu ben de fark ettim. yazdığım kod doğru ise o veriyi nasıl ekrana yazdırabilirim?

Yazdigin kod dogru degil, formatlamasi yanlis. Linki o yuzden verdim.

Veriyi alip ekrana yazdiran kod surada var.

commit’e gerek yok veriyi degiskene atamak icin: degisken_ismi = cursor.fetchall()
sonra da istedigin islemi yap onunla

import sqlite3
con = sqlite3.connect("filmler.db")
cursor= con.cursor()

def veri_cek():
    cursor.execute("select * from filmler order by RANDOM() LIMIT 1")
veri_cek=cursor.fetchall()

print(veri_cek)
con.close()

böyle yaptım ama çalıştırdığımda [ ] çıkıyor

Burada da veri_cek fonksiyonu cagrilmamis. (Ayni isimli degisken atanmis.)

veri_cek degiskenini fonksiyonun icine koy printi de ondan sonra fonksiyonu cagir

import sqlite3
con = sqlite3.connect(“filmler.db”)
cursor= con.cursor()

def veri_cek():
cursor.execute(“select * from filmler order by RANDOM() LIMIT 1”)
veri_cek=cursor.fetchall()
print(veri_cek)

veri_cek()
con.close()

dediğin gibi böyle yazdım ama hata aldım

import sqlite3
con = sqlite3.connect("filmler.db")
cursor= con.cursor()

def veri_cek():
    cursor.execute("select * from filmler order by RANDOM() LIMIT 1")
veri_cek=cursor.fetchall()

print(veri_cek)
veri_cek()
con.close()

çıktı:
[]
Traceback (most recent call last):
File “C:/Users/Hakan/Desktop/pythonodev/rastgelefilmseçici.py”, line 10, in
veri_cek()
TypeError: ‘list’ object is not callable

çağırınca hata verdi başka şekilde mi çağırmak lazım ki

Dostum veri_cek degiskenin ismini degistir ve bi tab koysana ona cunku hala fonksiyonun icinde degil printe de tab koy
yani 4 bosluk :slight_smile:

1 Beğeni

def veri_cek():
-----cursor.execute(“select * from filmler order by RANDOM() LIMIT 1”)
-----veri=cursor.fetchall()
-----print(veri)

veri_cek()
con.close()

1 Beğeni
import sqlite3
con = sqlite3.connect("filmler.db")
cursor= con.cursor()

def veri_cek():
    cursor.execute("select * from filmler order by RANDOM() LIMIT 1")
    veri_cekk=cursor.fetchall()

    print(veri_cekk)
veri_cek()
con.close()

böyle yaptım oldu çok teşekkürler

O kadar uğraşacağınıza verilen linki incelesenize:

1 Beğeni