Salut,
J'ai une erreur qui me bloque depuis deux jours que j'ai pas réussis à corriger meme avec de l'aide.
J'ai fais un programme qui crée une base de donée SQL avec des aliments, et recettes, ainsi que leur kcal associées.
J'avais fais un précédent topic que j'ai supprimé par accident
J'ai fais des boutons sur tkinter pour ajouter des aliments et recette et ca marche parfaitement, mais les boutons supprimer et afficher (aliment ou recette) ne marchent pas, avec toujours la meme erreur : sqlite3.OperationalError: no such column: [ce que je tape]
J'ai crée mes tables comme cela :
data_aliments = sqlite3.connect('aliments2.db')
a = data_aliments.cursor()
a.execute("""CREATE TABLE liste_aliments("aliment" str, "kcal" float)""")
data_recettes = sqlite3.connect('recettes.db')
r = data_recettes.cursor()
r.execute("""CREATE TABLE liste_recettes("nom_recette" str, "aliment" str ,"poid" float)""")
j'avais essayé text à la place le str pour voir si ca changeait mais pas d'influence
Et voila les lignes où le problème arrive :
def supp_aliment():
a.execute("DELETE from liste_aliments WHERE aliment= " + entry.get()) ##### Erreur
data_aliments.commit()
et
def print_aliment():
a.execute("SELECT * FROM liste_aliments WHERE aliment="+entry.get()) #### Erreur
b = a.fetch()
data_aliments.commit()
La case entry étant là où je tape le nom de l'aliment sur tkinter. J'ai toujours l'erreur "no such column" alors qu'en méttant directement le nom de l'aliment dans les guillemet par exemple comme ceci :
def supp_aliment():
a.execute("DELETE from liste_aliments WHERE aliment = 'farine' ")
data_aliments.commit()
Ca marche parfaitement.
On dirait que la fonction cherche une collone qui s'apelle "farine" alors que ca devrait etre une ligne qu'elle cherche, parmis la collone aliment.
Une idée d'où ca pourrait venir ?