prima di tutto vi fornisco le versioni con le quali sto armeggiando:
Python 2.7.6 (default, Mar 22 2014, 22:59:38) [GCC 4.8.2] on linux2;
Your MySQL connection id is 89 Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu);
Sono sempre alle prese con il gestionale sportivo e, devo fare in modo di ottenere una serie di dati precedentemente registrati in diverse tabelle di MySQL:
Leggendo alcune soluzioni riportate negli archivi del forum (dall'impiego di diversi Listbox ecc) ho pensato che per le mie esigenze potevo utilizzare PanedWindow di Tkinter, inserire al suo interno alcuni Listbox e ad essi far conferire i dati derivanti dal DB. Purtroppo c'è un qualcosa che non gira per il giusto verso, commetto uno sbaglio ma non riesco a capire dove:
Codice: Seleziona tutto
from Tkinter import *
import MySQLdb
primopaned = PanedWindow()
primopaned.pack(fill = BOTH, expand = 1)
LB1 = Listbox(primopaned, height=15, width=20)
LB1.grid(row =0, column = 0)
primopaned.add(LB1)
conn=MySQLdb.connect(host="XXXXXXX",user="XXXXXXX",passwd="XXXXXXXXXXXX",db="XXXXXXXXXXX")
cursor=conn.cursor()
cursor.execute("""SELECT Partecipanti FROM Evento_sportivo""")
rows=cursor.fetchone() #-------------------------------------------------------------se uso fetchall i dati appaiono tutti su di una riga (NO)
for row in rows:
LB1.insert(END," ".join([str(i)for i in rows]))
for row in rows:
rows=cursor.fetchone()#----------------------------------------<==necessitando di leggerei dati incolonnati ho fatto cosi
if row != 0:
LB1.insert(END," ".join([str(i)for i in rows]))#---------------ma ne ritornano solo un piccolo gruppo su 32 nominativi
cursor.close()
conn.close()
LB2 = Listbox(primopaned, height=15, width=20)
LB2.grid(row =0, column = 1)
primopaned.add(LB2)
conn=MySQLdb.connect(host="XXXXX",user="XXXXXX",passwd="XXXXXX",db="XXXXXXXX")
cursor=conn.cursor()
cursor.execute("""SELECT ID_gare FROM Evento_sportivo""")
rows=cursor.fetchone()
for row in rows:
LB2.insert(END,rows)#--------------------------------qui addirittura solo due su almeno una ventina di dati presenti
if row != 0:
rows=cursor.fetchone()
LB2.insert(END,rows)
cursor.close()
conn.close()
LB3 = Listbox(primopaned, height=15, width=20)
LB3.grid(row =0, column = 2)
LB3.insert(END,' ')
primopaned.add(LB3)
mainloop()
i dati estrapolati dalle tabelle del DB, inseriti nelle Listbox designate, incolonnati e sopratutto tutti.
Se qualcuno dei lettori, può gentilmente fornirmi spiegazioni del/degli errori che sto commettendo, ne sarei veramente grato.
A presto, Raffaele63