Salut à tous, je suis tout nouveau sur ce forum alors petite présentation.

Je m'appel Franck, je suis en prepa PTSI à l'ICAM et nous avons des cours d'informatiques où nous apprenons notamment le code Python.

Je suis débutant dans le domaine et j'ai une question concernant les bases de données SQL. Nous utilisons SQLite3 et je "code" avec Pyzo.
Mon but est de remplir des base de données et de la faire interagir entres-elles. Mon objectif est de créer 4 bases de données sur la gestion d'un aéroport (très simple) avec des tables qui se remplissent automatiquement, manuellement et semi-automatiquement.

Mon problème est le suivant: Je demande à l'utilisateur d'entrer 4 données (aéroport de départ, aéroport d'arrivée, durée de vol, nb de vols hebdomadaires), les deux premières données le programme doit aller les chercher dans la deuxième base de données (pré remplis par l'utilisateur) et les deux dernière sont données par l'utilisateur. Or, je n'arrive pas à les introduire dans la base de données car :"
cur.execute("INSERT INTO vols (aér_dep,aér_dest,durée,nb_hebdo)VALUES(?,?,?,?)",tu)
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.


Je soupçonne les deux valeurs selectionnées à l'aide de la commande SELECT qui sont des Tuples. Bref, je vous donne le programme en espérant avoir de l'aide:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import sqlite3
fichierdonnees ="D:/BDD/planning_général.sq3"
conn=sqlite3.connect(fichierdonnees)
cur=conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS compagnies (nom,hub_principal,flotte,indicatif)")
cur.execute("CREATE TABLE IF NOT EXISTS aéroport (nom,pays,code_IATA)")
cur.execute("CREATE TABLE IF NOT EXISTS vols (aér_dep,aér_dest,durée,nb_hebdo)")
a=0
while a!="stop":
    k=0
    a=int(input("Taper:\n 1 pour modifier la table compagnie\n 2 pour la table aéroport\n 3 pour la table vols\n 4 pour modifier une table\n 0 sinon: "))
#remplissage des 3 tables de bases
    if a==1:
        while k!=".":
            n=input("entrer un nom de compagnie: ")
            p=input("entrer un hub: ")
            q=input("entrer la taille de la flotte: ")
            r=input("entrer un indicatif de compagnie (deux lettres majuscules): ")
            k=input("entrer [.] si vous avez terminé; presser <entrer> sinon")
            data=[(n,p,q,r)]
            for tu in data:
                cur.execute("INSERT INTO compagnies (nom,hub_principal,flotte,indicatif)VALUES(?,?,?,?)",tu)
        conn.commit()
        cur.close()
        conn.close()
    if a==2:
        while k!=".":
            n=input("entrer un nom d'aéroport: ")
            p=input("entrer le nom du pays: ")
            q=input("entrer le code IATA: ")
            k=input("entrer [.] si vous avez terminé; presser <entrer> sinon")
            data=[(n,p,q)]
            for tu in data:
                cur.execute("INSERT INTO aéroport (nom,pays,code_IATA)VALUES(?,?,?)",tu)
        conn.commit()
        cur.close()
        conn.close()
    if a==3:
        while k!=".":
            n=input("entrer le nom de l'aéroport de départ: ")
            p=input("entrer le nom de l'aéroport d'arrivé: ")
            q=input("entrer la durée du vol: ")
            r=input("entrer le nombre de vols hebdomadaires: ")
            k=input("entrer [.] si vous avez terminé; presser <entrer> sinon")
            data=[(n,p,q,r)]
            for tu in data:
                cur.execute("INSERT INTO vols (aér_dep,aér_dest,durée,nb_hebdo)VALUES(?,?,?,?)",tu)
        conn.commit()
        cur.close()
        conn.close()
#modifier une table
    if a==4:
        n=input("entrer le nom de la table à modifier: ")
        p=input("nom à remplacer: ")
        q=input("par: ")
        cur.execute("UPDATE n SET nom = q WHERE nom= p")
 
#remplissage de la table vols semi-automatiquement
    if a==5:
        n=(input("entrer le nom de l'aéroport de départ: "),)
        p=(input("entrer le nom de l'aéroport d'arrivé: "),)
        cur.execute("SELECT nom FROM aéroport WHERE nom=?",n)
        q=cur.fetchone()
        print(q)
        print (type(q))
        cur.execute("SELECT nom FROM aéroport WHERE nom=?",p)
        r=cur.fetchone()
        print(r)
        print (type(r))
        s=input("entrer la durée du vol: ")
        t=input("entrer le nombre de vols hebdomadaires: ")
        k=input("entrer [.] si vous avez terminé; presser <entrer> sinon")
        data=[(q,r,s,t)]
        for tu in data:
            cur.execute("INSERT INTO vols (aér_dep,aér_dest,durée,nb_hebdo)VALUES(?,?,?,?)",tu)
        conn.commit()
        cur.close()
        conn.close()
    a=(input("entrer 'stop' si vous voulez arreter, presser <entrer> sinon: "))
Il n'est pas finis bien sur, il faut taper 5 pour accepter à la boucle qui me pose problème (elle n'est pas proposé au début)

Merci d'avance!