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 :

Récupérer une réponse Input pour insert sur une base de donnée SQLite3 [Python 3.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
    Juillet 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 5
    Par défaut Récupérer une réponse Input pour insert sur une base de donnée SQLite3
    Bonjour à toutes et à tous !

    Je suis désolé mais je suis débutant et ai deux (trois?) problèmes sur un petit programme que je dois faire pour accéder à la formation que je souhaite. Le programme doit créer une liste dans une base de donnée (jusqu'ici tout va bien) mais à partir d'une fonction input python traditionnelle. De plus, si le nom de l'utilisateur figure déjà dans la base de donnée, le programme doit ajouter un 1 devant son prénom, puis un 2 si le prénom1 est utilisé etc. (ex : si Laurie figure dans la BDD, le programme doit attribuer le nom Laurie1, si Laurie1 existe ça sera Laurie2 etc. etc.). J'ai donc deux soucis :

    1 / Faire en sorte que "INSERT INTO..." SQL accepte la réponse du Input (ce que je n'arrive pas à faire car la BDD enregistre le nom la fonction et non pas la réponse...)
    2 / Comment créer une fonction python pour que celui-ci puisse savoir si l'utilisateur existe déjà dans la base de donnée ou pas ?
    3 / Comment implémenter une variable en lui ajoutant 1 puis 2 puis 3...

    Voilà ce que j'ai fais : je vous préviens c'est archi-faux mais c'est pour vous donner une idée de mon raisonnement et pour que vous voyez à peu près où j'en suis :

    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
     
    import sqlite3
     
    connection_db = sqlite3.connect("logins.db") 
    cursor_db = connection_db.cursor()
     
    while user_generator:
        user_name = input("Créez votre identifiant")
        def alt_login(user_name):
            if new_user = user_name
                print("Votre identifiant existe déjà")
                new_user = user_name + 1
                    return False
            elif new_user2 = new_user
                print("Votre identifiant existe déjà")
                new_user2 = new_user += 1
                    return False
            continue
     
    if (alt_login(new_user)):
        print("Votre identifiant a bien été pris en compte") 
     
    user_name = (cursor_db.lastrowid, alt_login)
    cursor_db.execute('INSERT INTO matrice_users VALUES(?,?)', user_name)
    connection_db.commit()
    print("Nouvel utilisateur ajouté")  
     
    connection_db.close()
    Pour ceux qui ont eu le courage de me lire bravo et merci d'avance d'aider le débutant que je suis !

  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,

    Citation Envoyé par Kamoulox Pelvis Voir le message
    De plus, si le nom de l'utilisateur figure déjà dans la base de donnée, le programme doit ajouter un 1 devant son prénom, puis un 2 si le prénom1 est utilisé etc. (ex : si Laurie figure dans la BDD, le programme doit attribuer le nom Laurie1, si Laurie1 existe ça sera Laurie2 etc. etc.).
    On peut créer une colonne identifiant et une colonne numéro. Le premier Laurie aura le numéro 0, le suivant 1, ... Avant d'ajouter un identifiant, on peut récupérer le plus grand des (Laurie, n), s'il n'existe pas on ajoute Laurie, 0 sinon on ajoute Laurie, n+1.

    Sinon vous pouvez toujours avec LIKE récupérer les identifiants qui commencent par Laurie, extraire la fin pour en faire une liste d'entier et récupérer le plus grand.

    Mais à la base c'est plus des questions SQL que de programmation Python.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    On peut créer une colonne identifiant et une colonne numéro. Le premier Laurie aura le numéro 0, le suivant 1, ... Avant d'ajouter un identifiant, on peut récupérer le plus grand des (Laurie, n), s'il n'existe pas on ajoute Laurie, 0 sinon on ajoute Laurie, n+1.

    Sinon vous pouvez toujours avec LIKE récupérer les identifiants qui commencent par Laurie, extraire la fin pour en faire une liste d'entier et récupérer le plus grand.

    Mais à la base c'est plus des questions SQL que de programmation Python.

    - W
    En fait t'as tout à fait raison, je crois que je m'arrache les cheveux à essayer de créer un programme python liée à une base de donnée SQL pour répondre à cette fonction alors qu'en réalité le python est juste là pour "printer" le résultat... Je pense que mes profs m'ont bien eu sur ce coup ci ! En tout cas merci beaucoup pour ta réponse, je vais potasser le SQL. Bonne nuit !

  4. #4
    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 Kamoulox Pelvis Voir le message
    En tout cas merci beaucoup pour ta réponse, je vais potasser le SQL. Bonne nuit !
    Un exercice donné par un enseignant devrait vous aider à montrer que vous savez faire quelque chose avec ce qu'il vous a enseigné. Si la colonne identifiant est "unique", on peut imaginer essayer l'insertion de "Laurie" et réitérer avec Laurie1, Laurie2,... tant que çà plante.

    Ce qui va vous forcer à écrire une boucle, tester erreur ou exception,... et rester dans le côté Python. Personnellement, je n'en comprends pas trop l'intérêt. On aurait fait la même chose - côté Python - avec un dictionnaire sans s'embarquer à réfléchir à quoi devrait ressembler la table pour que...).

    A vous de voir.

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

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Un exercice donné par un enseignant devrait vous aider à montrer que vous savez faire quelque chose avec ce qu'il vous a enseigné. Si la colonne identifiant est "unique", on peut imaginer essayer l'insertion de "Laurie" et réitérer avec Laurie1, Laurie2,... tant que çà plante.

    Ce qui va vous forcer à écrire une boucle, tester erreur ou exception,... et rester dans le côté Python. Personnellement, je n'en comprends pas trop l'intérêt. On aurait fait la même chose - côté Python - avec un dictionnaire sans s'embarquer à réfléchir à quoi devrait ressembler la table pour que...).

    A vous de voir.

    - W
    En fait, l'exercice ne précise pas quel langage utiliser mais la condition est de stocker la liste dans un fichier.db, ce qui a fortiori signifie à minima qu'il y a une partie SQL.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/09/2017, 11h39
  2. Réponses: 9
    Dernier message: 26/08/2016, 09h13
  3. Réponses: 1
    Dernier message: 14/03/2010, 19h08
  4. Récupérer une base de données mysql
    Par Beginer dans le forum Administration
    Réponses: 1
    Dernier message: 22/02/2009, 21h10
  5. Récupérer une base de donnée endommagée
    Par bobosh dans le forum Sécurité
    Réponses: 2
    Dernier message: 26/08/2008, 00h02

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