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 :

Remplacer le nom d'une colonne MySQL par une variable Python [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut Remplacer le nom d'une colonne MySQL par une variable Python
    Bonjour à tous,

    Je suppose que l'intitulé de ce poste peut prêter à confusion mais je vais m'expliquer plus en détails.
    J'aimerais faire une requête MySQL où le nom de la colonne dans la query est une variable Python.
    Mon programme consiste à chercher les informations dans ma BDD lorsque j'écris dans un QTextEdit.
    Par exemple => SELECT * FROM `table` WHERE la_variable_que_je_veux_changer = %s
    La variable à changer étant le choix que l'utilisateur fait dans un QComboBox. (variable qui se trouve dans ma BDD => nom, prénom, âge, etc..)
    J'aimerais savoir si c'est possible.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Ça me paraît bien bancal cette histoire

    Je pense que vous souhaitez via votre QTextEdit, récupérer l'ensemble des lignes d'une colonne.

    Cette variable python (contenant la valeur du contenu du QTextEdit) devra être enregistré au préalable.
    Vous l'utiliserez à l'aide des lignes résultantes d'un fetchall.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    variable = ... # contenu du QTextEdit
    result = cursor.fetchall()
    for line in result:
        print(line['{}'.format(variable)])
    En espérant que c'est bien ce que vous souhaitez

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut
    Tout d'abord merci pour votre réponse,

    Malheureusement ce n'est pas ce que je recherche..
    Je vais essayer d'être plus clair.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    comboBoxText = self.combobox.currentText()
    searchValue = self.textEdit.text()
     
    cursor.execute("""SELECT nom, prenom FROM client WHERE %s LIKE %s """, ("%" + searchValue + "%", )) #J'aimerais que le premier "%s" soit la variable comboBoxText
    response = cursor.fetchall()
    J'espère vous avoir éclairé.
    Merci.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Eh bien pourtant j'ai bien l'impression que si

    Vous virez le WHERE et toute la suite, et appliquez ce que j'ai dis plus haut.

    variable étant remplacé par searchValue.

    EDIT: Faites le test avec un print et voyez ce qui se passe...
    EDIT2: Autant pour moi ce ne sera pas searchValue, mais comboBoxText

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 5
    Par défaut
    Ça ne fonctionne pas..
    Je pense que vous ne comprenez pas vraiment ce que je souhaite.

    La comboBox est composé de 2 items : nom et prénom.
    Je veux que lorsque l'user choisit un de ces deux items et qu'il a remplit le QTextEdit, la variable dans le SELECT soit le choix de la comboBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM client WHERE choix_de_la_comboBox LIKE %s
    J'espère que vous m'avez compris.
    Encore merci de prendre votre temps pour répondre.

  6. #6
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Je crois que c'est toi qui n'as pas compris ce que te suggère fred599.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql = 'SELECT nom, prenom FROM client WHERE {} LIKE %s'.format(comboBoxText)
    cursor.execute(sql, ("%" + searchValue + "%", ))
    Mais ce genre de code n'est pas secure, donc peut-être vérifier ce que contient comboBoxText avant de faire quoi que ce soit.

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

Discussions similaires

  1. [Toutes versions] remplacer le nom d'un Control (listbox) par une variable pour agir sur ses propriétés
    Par jppouma dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/04/2017, 14h15
  2. Réponses: 4
    Dernier message: 01/04/2009, 12h11
  3. Réponses: 2
    Dernier message: 21/09/2008, 17h21
  4. [POO] Appeler une fonction par son nom dans une variable
    Par whitespirit dans le forum Langage
    Réponses: 16
    Dernier message: 18/06/2008, 11h23

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