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 :

comment chopper le nb de lignes d'une table dans un script python?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut comment chopper le nb de lignes d'une table dans un script python?
    Bonjour à tous,
    je n'arrive pas à récupérer le nb de lignes d'une table innodb mysql5...

    j'ai fait :
    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
     
    def connection ():
        #connection à la banque (attention à changer selon l'utilisateuer.. etc)
        bque = MySQLdb.connect(db="ma_databse",  user="moua")
     
        #ouverture d'un curseur dans la banque
        cursr = bque.cursor()
        return cursr
     
     
    # Fetch le curseur
     
    def execute_requete (cursr,requete):
        # Execute_requete de la requete
        exe = cursr.execute(requete)
        #commit
        cursr.execute("commit;")
        # Recuperation du resutat
        rst = cursr.fetchall()
        return rst
     
    curseur = connection()
     
    compte = "SELECT COUNT(*) FROM ma_table"
    cpt= execute_requete (curseur,compte)
    print cpt
    et j'obtiens :
    >>> ()
    ..

    donc c'est rigolo au debut mais là j'y suis depuis hier , je le tourne dans tous les sens et donc maintenant ça me fait beaucoup moins rire, forcément...
    Je sais que mes fonctions marchent, Je les ai dejà utilisées pour des requetes "insert"...
    qqn aurait-il la soluce s'il vous plait?

  2. #2
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Tu as vérifier si ta table contien bien des données ?

  3. #3
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut
    oui oui,
    à la console j'ai la reponse standar :

    mysql> select count(*) from ma_table;
    +----------+
    | count(*) |
    +----------+
    | 62193 |
    +----------+
    1 row in set (0.00 sec)

  4. #4
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Il est là le probleme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cursr.execute("commit;")
    # Recuperation du resutat
    rst = cursr.fetchall()
    return rst
    En fait, ce que tu retourne c'est le résultat de la requete "commit;", et c'est toujours vide.

    De plus, c'est normal que tu ne le vois que maintenant parce qu'avant tu ne faisait que des inserts, et les requetes insert ne retourne pas de résultats (list vide), tu n'a donc pas vu que ce que tu récupere en fait c'est le résultat du commit et pas de ta requete.

  5. #5
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut
    ah ! oki! merci beaucoup !

    Oui effectivement ça marche!
    Mais alors du coup je comprends plus à quoi sert le commit ...

  6. #6
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Par défaut
    Citation Envoyé par Mydriaze Voir le message
    Mais alors du coup je comprends plus à quoi sert le commit ...
    bah, dans ton cas, à rien
    Surtout que MySQL commit automatiquement chaque instruction si elle ne fait pas partie d'une transaction. Tu peux l'enlever sans crainte.

    Tu aura à utiliser le commit si jamais tu as besoin de transaction. Mais ce n'est pas quelque chose qu'on utilise systématiquement quand on fait du web.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/07/2008, 12h20
  2. [MySQL] Problème différentiation des lignes d'une table dans une boucle
    Par ppioul dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/05/2008, 18h21
  3. ligne d'une table dans colonne d'un select
    Par Invité dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/09/2007, 11h49
  4. Réponses: 2
    Dernier message: 19/02/2007, 13h02
  5. Réponses: 2
    Dernier message: 15/09/2006, 12h18

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