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 :

python, mysql, envoyer 2 variables dans la même colonne de la même ligne


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut python, mysql, envoyer 2 variables dans la même colonne de la même ligne
    pouvez-vous m'aider avec ce problème s'il vous plaît?

    Je crée une fiche médicale.
    Dans les antécédents (par exemple, mais aussi dans d'autres sections), je crée plusieurs Entry, et après je voudrais les envoyer dans une seule colonne de la même ligne.
    Mais dans le benchbord MySQL ça me renvoie py_var5 py_var6, je ne comprends pas pourquoi ? :/

    Nom : 1.png
Affichages : 193
Taille : 91,8 Ko

    voici le script raccourci :

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    class PageOne(tk.Frame):
     
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller
     
        mysqldb = mysql.connector.connect(
            host='localhost',
            user='root',
            password='*******',
            port='3306',
            database='fiche_patient_sql'
        )
        mycursor = mysqldb.cursor()
     
     
        global today
        today = date.today()
        print(today)
     
        def Add():
            with open("idsaver.txt", "r") as fic:
                content = fic.read()
                print(content)
     
            id = int(content)
            date =today
            type = vartype.get()
            motif = emotif.get()
            atcd = getallatcd
            symptome = esymptome.get()
            bio = ebio.get()
            diagnostic = edg.get()
     
            print(id, date,type,motif,atcd,symptome,bio,diagnostic)
     
             mysqldb = mysql.connector.connect(
                host='localhost',
                user='root',
                password='******',
                port='3306',
                database='fiche_patient_sql'
            )
            mycursor = mysqldb.cursor()
     
            try:
                sql = "INSERT INTO  fiche_pat_table (id,date,type,motif,atcd, symptome,bio,diagnostic) " \
                      "VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"
                val = (id, date, type, motif, atcd, symptome, bio, diagnostic)
                mycursor.execute(sql, val)
                mysqldb.commit()
     
                messagebox.showinfo("information", "Employee inserted successfully...")
     
                emotif.focus_set()
            except Exception as e:
                print(e)
                mysqldb.rollback()
                mysqldb.close()
     
        global typechoosen
        global emotif
        global eatcd
        global esymptome
        global ebio
        global edg
     
     
        ################## ATCD ####################################
     
        frame_atcd = Frame(fTable, bg="#F5CBA7", bd=1, relief=SUNKEN)
        frame_atcd.grid(row=3,sticky='nsew', pady=10, padx=5)
     
        label_title = tk.Label(frame_atcd, text="Antécédents", font=("Courrier", 15), bg="#F5CBA7",
                               fg="black")
        label_title.grid(row=1, column=0)
     
        geteatcd = tk.StringVar()
        latcd = tk.Label(frame_atcd, text="antécédent", bg="#F5CBA7").grid(row=2, column=0)
        eatcd = tk.Entry(frame_atcd,  textvariable=geteatcd)
        eatcd.grid(row=2, column=1)
        info = eatcd.grid_info()
        rowentry = info["row"]
        with open("rowsaver.txt", "w") as fic:
            therow = rowentry
            fic.write(str(therow))
     
        def createEntry():
            with open("rowsaver.txt", "r") as fic:
                therow = fic.read()
            lerow = int(therow) + 1
            tk.Label(frame_atcd, text="antécédent", bg="#F5CBA7").grid(row=lerow, column=0)
            createEntry.getearcd = tk.StringVar()
            eatcd = tk.Entry(frame_atcd,  textvariable=createEntry.getearcd).grid(row=lerow, column=1)
            with open("rowsaver.txt", "w") as fic:
                therow = int(therow) + 1
                fic.write(str(therow))
     
        plusentry = tk.Button(frame_atcd, text="+", command=createEntry, height=1, width=3)
        plusentry.grid(row=2, column=2, padx=20)
     
        createEntry()
     
        getallatcd = str(geteatcd)+ "\n" +str(createEntry.getearcd)
     
     
        ###########frame Button ##########################
     
        frame_butt = Frame(fTable, bg="#F5CBA7", bd=1, relief=SUNKEN)
        frame_butt.grid(row=7, sticky='nsew', pady=10, padx=5)
        Button(frame_butt, text="enregister fiche", command=Add, height=3, width=13).grid(row=0, column=0, padx=20)
    Ici, vous verrez le résultat sur le MySQL benchboard :

    Nom : 3.png
Affichages : 188
Taille : 45,3 Ko

    Au final, ce que je voudrais c'est récupérer les 2 ou plusieurs antécédents dans la colonne "ATCD" avec retour à la ligne. Enfin si c'est possible :/

    Merci beaucoup

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Si v est une variable tkinter de type StringVar (par exemple), str(v) retournera PY_VARn (le nom de la variable TCL/Tk associée).
    Pour récupérer, son contenu, c'est v.get().

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

  3. #3
    Membre actif
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut
    non, rien j'ai tout essayé, je ne reçois que (PY_VAR5) ou (PY_VAR6) ou les 2 même dans la console.
    Et je ne sais pas où est le problème, est-ce lorsque je l'enregistre, ou dans la lecture...
    c'est normal, que sur le benchbords, je trouve ce PY_VARn au lieu du terme que j'ai enregistré?

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Commence par la base: affiche les variables que tu récupères avant de les envoyer à ta bdd. C'est un peu le minimum que de vérifier les informations reçues.

    Accessoirement global today ne sert à rien.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre actif
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut
    ah ah , j'ai fait un print (getallatcd) en l'enregistrant et dans la console, j'ai aussi PY_VAR... :/

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kanon22 Voir le message
    ah ah , j'ai fait un print (getallatcd) en l'enregistrant et dans la console, j'ai aussi PY_VAR... :/
    Et donc ? Tu attends qu'on te prenne par la main ?
    Donc tu remontes d'un cran et tu affiches les variables ayant produit le contenu de getallatcd (geteatcd et createEntry.getearcd). Et si ça ne va toujours pas alors tu continues à investiguer jusqu'à trouver la variable origine de l'erreur.

    Citation Envoyé par kanon22 Voir le message
    Je voudrais tellement comprendre ce qui se passe dans la tête d'une personne qui va fournit tant d'effort à dire "non, je ne veux pas t'aider"
    Ce n'est pas ce qu'il a dit. Son discours était plutôt "arrête de faire l'assisté de base et sors-toi les doigts car on ne les sortira pas pour toi". Et que tu le veuilles ou non, donner des coup de pieds au cul des branleurs c'est aussi leur apporter de l'aide même si ce n'est pas sous la forme qu'ils aimeraient.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par kanon22 Voir le message
    Et je ne sais pas où est le problème, est-ce lorsque je l'enregistre, ou dans la lecture...
    La commande "print" vous permet de visualiser ce que vous aller écrire dans la base (et donc de savoir si c'est en lecture ou en écriture...).

    Citation Envoyé par kanon22 Voir le message
    c'est normal, que sur le benchbords, je trouve ce PY_VARn au lieu du terme que j'ai enregistré?
    Pour vous répondre, il faudrait pouvoir lire le code...
    Ce qui suppose fournir un code lisible(*) qui permette de reproduire le problème (car parfois, c'est utile pour vérifier qu'on a bien compris ce qu'on a lu).

    (*) Si vous écrive un pensum en français bourré de fautes d'orthographes et de grammaire, il faut avoir la compassion d'un parent pour s'attacher à le décoder. Je ne suis pas votre papa et si vous ne voulez pas prendre le temps d'apprendre à coder "proprement", c'est votre choix (et il a des conséquences quant à l'aide qu'on peut vous apporter).

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

  8. #8
    Membre actif
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut
    Je voudrais tellement comprendre ce qui se passe dans la tête d'une personne qui va fournit tant d'effort à dire "non, je ne veux pas t'aider"
    Alors, que je suis sûr qu'une personne saine d'esprit se contenterait de ne pas répondre et passer son chemin.
    Je connais de bons psychiatres.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par kanon22 Voir le message
    Je voudrais tellement comprendre ce qui se passe dans la tête d'une personne qui va fournit tant d'effort à dire "non, je ne veux pas t'aider"
    Je vous ai donné des pistes. Après si vous ne pouvez pas les exploiter parce que vous vous lancez dans des projets trop compliqués pour votre niveau...dommage.

    Citation Envoyé par kanon22 Voir le message
    Alors, que je suis sûr qu'une personne saine d'esprit se contenterait de ne pas répondre et passer son chemin.
    C'est le bonhomme qui se lance à escalader le mont blanc sans équipement adapté qui n'est pas "sain d'esprit"... Bien sûr s'il a besoin d'aide, on ira car sa vie est en jeu. Ici, ce n'est pas le cas: c'est juste votre impatience à vouloir faire sans avoir pris le temps d'apprendre qui est en cause....
    Et vous n'arrivez même pas à imaginer qu'on ne puisse pas vous aider (sauf à coder à votre place).

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

Discussions similaires

  1. comment envoyer une variable dans un lien en python?
    Par nYrL-iCe dans le forum Django
    Réponses: 2
    Dernier message: 15/09/2015, 15h25
  2. écrire des variables dans la même ligne
    Par mohammed.badre dans le forum Débuter
    Réponses: 3
    Dernier message: 22/12/2011, 10h41
  3. Réponses: 2
    Dernier message: 11/07/2007, 14h28
  4. Envoyer une variable dans un état
    Par uskiki85 dans le forum Access
    Réponses: 5
    Dernier message: 13/10/2005, 21h44
  5. envoyer plusieurs variables dans l'url?
    Par brgui dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h18

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