Supprimer utilisateur mariadb tkinter
Bonjour,
Je développe un logiciel en python en interface graphique avec tkinter.
J'ai une table Tree qui m'affiche le contenu de la bdd sql (mariadb)
J'aimerais que l'utilisateur puisse supprimer une ligne en la séléctionnant, puis en cliquant sur le bouton "supprimer" (suppression simultanée dans le Tree et la bdd) . J'ai la base de la fonction mais la console me retourne un erreur.
code :
erreur :
Merci d'avance
Je développe un logiciel en python en interface graphique avec tkinter.
J'ai une table Tree qui m'affiche le contenu de la bdd sql (mariadb)
J'aimerais que l'utilisateur puisse supprimer une ligne en la séléctionnant, puis en cliquant sur le bouton "supprimer" (suppression simultanée dans le Tree et la bdd) . J'ai la base de la fonction mais la console me retourne un erreur.
code :
def delete():
selected_item = tree.selection()[0]
conn = sqlite3.connect("database.db")
cursor = conn.cursor()
mycursor = conn.cursor()
sql_select_Query = ("DELETE FROM tt_users WHERE user_id = %s")
mycursor.execute(sql_select_Query, selected_item)
conn.commit()
tree.delete(selected_item)
print('delete')
erreur :
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/home/tethys/Documents/developpement/python/app/main.py", line 183, in <lambda>
deleteUserBtn = Button(tab1,text="Supprimer",command=lambda:delete())
File "/home/tethys/Documents/developpement/python/app/main.py", line 163, in delete
mycursor.execute(sql_select_Query, selected_item)
sqlite3.OperationalError: near "%": syntax error
Merci d'avance
2 réponses
-
Contributeurbonjour,
moi j'essaierais en remplaçant%s
par?
.-
Le résultat est une erreur :
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/home/tethys/Documents/developpement/python/app/main.py", line 183, in <lambda>
deleteUserBtn = Button(tab1,text="Supprimer",command=lambda:delete())
File "/home/tethys/Documents/developpement/python/app/main.py", line 163, in delete
mycursor.execute(sql_select_Query, selected_item)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied. -
Contributeur@codeur782Comprends-tu le message d'erreur?
Il t'indique que tu as 4 éléments dansselected_item
, alors qu'il n'en faut qu'un seul. -
@yg_beOui, du coup il faudrait que je ne selectionne qu'une colonne du tableau....
-
-
-
Je ne sais pas trop comment m'y prendre.. Dans l'idéal, l'utilisateur sélectionne la ligne, le programme selectionne l'id, et quand l'uilisateur clique sur suppr alors la ligne est supprimée ppar l'ID. J'ai résolu une erreur, c'était la requete sql qui était mal ecrite mais maintenant il faut que je trouve comment ressortir une valeur du tableau...
Merci encore