IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

SQLITE TKINTER : afficher des données triées après sélection dans une liste déroulante ComboBox [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lagratteCchouette
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 202
    Par défaut SQLITE TKINTER : afficher des données triées après sélection dans une liste déroulante ComboBox
    Bonjour,

    Je souhaite pouvoir Extraire des données suite à une sélection au moyen d'un combobox.

    En d'autres termes voici ma requête SQL j'arrive à réaliser avec le code SQL ci-dessous et le code python ci-après :
    Je veux extraire tous les numéros de discours qui ont été réalisés à Paris. Ca OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT * FROM tb_discours WHERE ville
    Maintenant je veux extraire tous les numéros discours qui ont été réalisés à Paris, mais triés dans l'ordre croissant.
    Mais je ne comprend pas comment arriver à faire cela en Python en utilisant TKINTER.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT * FROM tb_discours WHERE ville ="Paris" ORDER by numdiscours

    Voici mon code PYTHON
    ma liste déroulante récupère la Ville dans la table tb_discours
    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
    # function callback
    def callback_villeRch(event):
        global rsltcmb_villeRch
        rsltcmb_villeRch = cmb_villeRch.get()
    
    
    # Authors drop-down list function
    def cmb_villeRch():
        """ Fonction liste déroulante """
    connexion = sqlite3.connect('mnesis.db')
        cursor = connexion.cursor()
        cursor.execute('SELECT DISTINCT ville FROM tb_discours ORDER BY ville')
        data = []
        for row in cursor.fetchall():
            data.append(row[0])
        return data

    Ensuite l'affichage, mais les numéros de discours ne sont pas triés dans un ordre croissant, comment faire ?
    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
    """ Retourne les valeurs des enregistrements de la base de données """
    connexion = sqlite3.connect('mnesis.db')
    cursor = connexion.cursor()
    # La recherche doit correspondre à la selection de la liste déroulante
    cursor.execute('SELECT * FROM tb_discours WHERE ville=?', (rsltcmb_villeRch,))
    results = cursor.fetchall()
    print_results = ''
    for row in results:
        print_results += "N° Discours : " + str(row[3]) + "\n" + "Date : " + str(row[2]) + "\n" + "Messages : " + "\n" + str(row[4]) + \
                         "\n" + "-----------------------------------------" + "\n"
    
    # Label ---------------------
    ville_label = Label(tpl_rslt, text=str(row[1]), padx=10, pady=5, bg="Snow3", fg="#272727", font="Calibri 22 bold")
    ville_label.pack()
    # Insert zone de texte
    zonetext = ScrolledText(tpl_rslt, width=135, height=30, padx=10, pady=1, wrap='word', font="Calibri 12")
    zonetext.pack()
    zonetext.insert("0.0", print_results)
    Merci beaucoup par avance pour votre expertise.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Côté SQL vous avez ORDER BY......
    Et côté Python, trier, c'est "sort"..

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé Avatar de lagratteCchouette
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 202
    Par défaut
    Merci je regarde

  4. #4
    Membre confirmé Avatar de lagratteCchouette
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 202
    Par défaut
    Après lecture de l'article concernant "sort", voici mon code avec les lignes 8 et 1o modifiées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    """ Retourne les valeurs des enregistrements de la base de données """
    connexion = sqlite3.connect('mnesis.db')
    cursor = connexion.cursor()
    # La recherche doit correspondre à la selection de la liste déroulante
    cursor.execute('SELECT * FROM tb_discours WHERE ville=?', (rsltcmb_villeRch,))
    results = cursor.fetchall()
    print_results = ''
    print_results2 = sorted(print_results, key=lambda numdiscours: numdiscours[3])
    for row in results:
        print_results2 += "N° Discours : " + str(row[3]) + "\n" + "Date : " + str(row[2]) + "\n" + "Métaphores : " + "\n" + str(row[4]) + \
                         "\n" + "-----------------------------------------" + "\n"
    Donc je n'ai pas de message d'erreur, par contre rien ne s'affiche dans mon formulaire de données.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par lagratteCchouette Voir le message
    Donc je n'ai pas de message d'erreur, par contre rien ne s'affiche dans mon formulaire de données.
    Relisez votre code et ajoutez des affichages de variables/"print" pour vous assurer que chaque étape fait bien ce que vous espérez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre confirmé Avatar de lagratteCchouette
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 202
    Par défaut
    Merci, c'est ce que j'ai fait et voici le résultat dans la console pour ce print.
    .
    Résultat :
    ['N', '°', ' ', 'D', 'i', 's', 'c', 'o', 'u', 'r', 's', ' ', ':', ' ', '0', '2', '0', '-', 'L', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', 'e', 's', 't', '-', 'i', 'l', ['N', '°', ' ', 'D', 'i', 's', 'c', 'o', 'u', 'r', 's', ' ', ':', ' ', '0', '5, '4', '-', 'L', 'e', ' ', 'L', 'o', 'n', 'g', 'n', 't', ' ', 'e', 's', 't',....]
    Donc les données passent bien mais ce n'est pas ça... Le tri ne se fait pas car j'ai le N° 20 et ensuite le 54 et ensuite le 44.
    Il me manque une clé de compréhension et j'ai beau relire la doc je ne vois pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Filtrage des données selon un choix dans une liste déroulante
    Par mo56go dans le forum Excel
    Réponses: 3
    Dernier message: 03/10/2017, 17h04
  2. [WD20E] Besoin d'aide pour afficher des données de l'arbre dans une table
    Par Guillaume Philippe dans le forum WinDev
    Réponses: 0
    Dernier message: 30/06/2016, 14h25
  3. Réponses: 12
    Dernier message: 19/06/2014, 11h28
  4. Réponses: 4
    Dernier message: 22/06/2009, 12h12
  5. [ODBC] Garder une saisie après sélection dans une liste déroulante
    Par nawak.seb dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 27/08/2008, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo