Найти - Пользователи
Полная версия: Вывод данных из таблицы
Начало » Python для новичков » Вывод данных из таблицы
1
Ruslan320
Здравствуйте, дополнить код.
Надо чтобы можно было в entry вводить название таблице, и в label выводились данные из этой таблицы а не из RESULTS.
Заранее огромное спасибо!
 from tkinter import *
import sqlite3 as lite
import sys
def s():
    con = lite.connect('sport.sqlite')
    with con:
        cur = con.cursor()
        cur.execute("SELECT * FROM RESULTS")
        text = ''
        while True:
            row = cur.fetchone()
            if row == None:
                break
            text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n'
        label7["text"] = text
root=Tk()
root.title("Работа с базой данных")
btn4 = Button(root, text="OK", font= "Arial 10", command = s)
btn4.grid(row=1, column=0)
label7 = Label(root)
label7.grid(row=2, column=0)
ent3 = Entry(root)
ent3.grid(row=0, column=0)
root.mainloop()
4kpt_V
 #
from tkinter import *
import sqlite3 as lite
import sys
def s(entry):
    con = lite.connect('sport.sqlite')
    table_name = entry.get()
    with con:
        cur = con.cursor()
        cur.execute("SELECT * FROM {}".format(table_name.upper()))
        text = ''
        while True:
            row = cur.fetchone()
            if row == None:
                break
            text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n'
        label7["text"] = text
root=Tk()
root.title("Работа с базой данных")
label7 = Label(root)
label7.grid(row=2, column=0)
ent3 = Entry(root)
ent3.grid(row=0, column=0)
btn4 = Button(root, text="OK", font= "Arial 10", command = lambda: s(ent3))
btn4.grid(row=1, column=0)
root.mainloop()

P.S. И вам тоже почитать это бы не помешало
Ruslan320
4kpt_V
Спасибо, а как сделать чтобы не надо было каждый раз менять эту часть кода:
text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n'
Потому что при выводе данных из другой таблицы выходит ошибка:
text += str(row) + “ | ” + “id команды: ” + str(row) + “ | ” + “Всего игр: ” + str(row) + “ | ” + “Выигрышей: ” + str(row) + “ | ” + “Поражений: ” + str(row) + “ | ” + “Разница в голах: ” + str(row) + “ | ” + “Очков: ” + str(row) + ‘\n’
IndexError: tuple index out of range
4kpt_V
 #
position_name = ("", "id команды: ", "Всего игр: ", "Выигрышей: ")
#
line_text_block = []
for name, data in zip(position_name, row):
    line_text_block.append("{}{}".format(name, data))
result_line = " | ".join(line_text_block)
#

Или одной строкой

 #
position_name = ("", "id команды: ", "Всего игр: ", "Выигрышей: ")
#
result_line = " | ".join(["{}{}".format(name, data) for name, data in zip(position_name, row)])
#
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB