Condition à partir de clé primaire et étrangère [Résolu]

Signaler
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
-
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
-
Bonjour,
Si je suis ici c’est parce que j’aimerais crée une condition sqlite3 sur python.
Cette condition ferait en sorte que si PRIMAIRY KEY = FOREIGNE KEY.
Il faut bien sur qu’elle soit de la même ligne, exemple la clé primaire de la ligne 1 doit correspondre avec la clé étrangère de la même ligne.
Au moins si l’es clé correspond ça m’ouvre une fenêtre tkinter avec marquer “ bravo c’est’est la bonne cle”, si elle ne correspond pas ca m’ouvre une autres fenêtre avec marquer “La cle primaire ou étrangère ne correspond pas réessaie”.

PS : j’écris le code sur python, et ma base de donnée et en SQLite3.
mon code
import sqlite3
from tkinter import *



fenetre1= Tk()
fenetre1.geometry("380x380+500+200")
fenetre1.resizable(width=NO,height=NO)

Etiquette1=Label(fenetre1,text='Bonjour,',font=("Courrier", 15)).place(x=165,y=30)
Etiquette1=Label(fenetre1,text='Et bienvenue dans Cloud Games',font=("Courrier", 15)).place(x=60,y=55)
Etiquette1=Label(fenetre1,text='La plateforme compétitife de partage ',font=("Courrier", 15)).place(x=30,y=80)
Etiquette1=Label(fenetre1,text='de jeux',font=("Courrier", 15)).place(x=165,y=105)
Etiquette1=Label(fenetre1,text='Souhaitez-vous vous connecter :',font=("Courrier", 15)).place(x=60,y=130)
Etiquette1=Label(fenetre1,text='Ou vous inscrire :',font=("Courrier", 15)).place(x=60,y=175)
#définit ma première fenetre avec sont texte, et ses 2 boutons en bas de la page

class create():
    def page2():
        fenetre2=Tk()
        fenetre2['bg']='white'
        fenetre2.geometry("600x250+400+350")

        Etiquette1=Label(fenetre2,text='Prénom').place(x=100,y=45)
        entree1=Entry(fenetre2,width=10)
        entree1.insert(0,1)
        entree1.place(x=100,y=65)

        Etiquette2=Label(fenetre2,text='Age').place(x=200,y=45)
        entree2=Entry(fenetre2,width=10)
        entree2.insert(0,1)
        entree2.place(x=200,y=65)

        Etiquette3=Label(fenetre2,text='Pseudo').place(x=100,y=90)
        entree3=Entry(fenetre2,width=10)
        entree3.insert(0,1)
        entree3.place(x=100,y=110)

        Etiquette4=Label(fenetre2,text='mots de passe').place(x=200,y=90)
        entree4=Entry(fenetre2,width=10)
        entree4.insert(0,1)
        entree4.place(x=200,y=110)



        def Creation():

            n = entree1.get()
            a = entree2.get()
            u = entree3.get()
            p = entree4.get()
            conn = sqlite3.connect('baseDonnees.db')
            cursor = conn.cursor()
            cursor.execute("""CREATE TABLE IF NOT EXISTS users(name TEXT,age INTEGER,username PRIMARY KEY UNIQUE NOT NULL,password FOREIGNE KEY UNIQUE NOT NULL)""")
            conn.commit()
            cursor.execute("""INSERT INTO users(name, age, username, password) VALUES(?, ?, ?, ?)""", (n, a, u, p))
            conn.commit()
            cursor.close()
            conn.close()
            fenetre3=Tk()
            fenetre3['bg']='white'
            fenetre3.geometry("600x250+400+350")
            Etiquette5=Label(fenetre3,text='Bravo, votre compte a bel et bien était crée.',bg='white',font=("Arial", 20)).place(x=40,y=45)

            def fermertout():
                fenetre2.destroy()
                fenetre3.destroy()

            bouton4=Button(fenetre3, text='fermer', command=fermertout).place(x=70,y=65)
#cette def permet d'executer le programme qui permet d'enregistrer les donnée mises dans les "entree" de ma fenetre2.
#elle est placée dans une autre def afin que la fenetre2 lui sois définit.
        bouton3=Button(fenetre2,text='crée un nouveau compte',command=Creation).place(x=80,y=20)
# je definit ma deuxieme page tkinter, avec le bouton de création (celui qui n'apparet pas)

class conexion():
    def page3():
        fenetre4=Tk()
        fenetre4['bg']='white'
        fenetre4.geometry("600x250+400+350")
        fenetre1.destroy()

        Etiquette5=Label(fenetre4,text='Pseudo').place(x=100,y=90)
        entree5=Entry(fenetre4,width=10)
        entree5.insert(0,1)
        entree5.place(x=100,y=110)

        Etiquette6=Label(fenetre4,text='mots de passe').place(x=200,y=90)
        entree6=Entry(fenetre4,width=10)
        entree6.insert(0,1)
        entree6.place(x=200,y=110)

        u = entree5.get()
        p = entree6.get()

        def conecté():
            u = entree5.get()
            p = entree6.get()

            conn = sqlite3.connect('baseDonnees.db')
            cursor = conn.cursor()
            cursor.execute("""SELECT username, SUM(password) FROM users""")#je bloque ici pour l'instant.
            conn.commit()


        bouton5=Button(fenetre4,text='Se connecté',command=conecté)



bouton1=Button(fenetre1,text='Connexion',command=conexion.page3).place(x=80,y=155)
bouton2=Button(fenetre1,text='crée mon compte',command=create.page2).place(x=80,y=200)
fenetre1.mainloop()

1 réponse

Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
782
bonjour,
tu as une table, users, avec les champs suivants: name, age, username, password.

peux-tu donner un exemple de ce que tu veux faire?
est-ce lié à la ligne 101 de ton code?
veux-tu vérifier si le nom de l'utilisateur et le mot de passe sont corrects?
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
>
Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021

Pour la clé étrangère il m’a dit qu’elle pouvait faire office de second clé primaire. C’est d’ailleurs pour ça que je me sert d’une clé étrangère pour le mors de passe.

Et non il ne m’a pas expliquer comment faire une requête WHERE.
Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
782 >
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020

je ne pense pas que ce que tu as appris te permette de faire cet exercice.
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
>
Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021

D’accord, et vous auriez une solution pour m’aider s’il vous plaît ?
Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
782 >
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020

cela ne t'aiderait pas à progresser si je fais l'exercice à ta place.
moi je contacterais le prof pour lui expliquer que l'exercice dépasse le niveau du cours.
ou bien je chercherais une formation complémentaire.
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
>
Messages postés
13891
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021

D’accord,
Je pense que je vais faire des recherche pour m’améliorer dans ces domaine.
Encore un grand merci à toi,
Et passe une bonne journée,
Cordialement kymer_officiel