2017-10-13 12 views
0

Je suis nouveau sur Python et MySQL. J'ai créé un MySQL db 'food' dans localhost. Je veux écrire un code python pour prendre l'entrée de l'utilisateur et le comparer à la colonne fruits dans mon fichier de base de données. Si la chaîne d'entrée correspond à une valeur dans la base de données , elle doit imprimer "Item Exists" sinon ajouter la chaîne à la base de données.Comparaison de l'entrée de l'utilisateur avec les valeurs de mysql db en Python

mysql> select * from example; +----+--------+ | id | fruits | +----+--------+ | 1 | Apple | | 2 | Orange | | 3 | Grape | +----+--------+ 3 rows in set (0.00 sec)

Je sais comment accéder au db et insérer des valeurs à, mais pas comment le comparer avec l'entrée d'utilisateur. S'il vous plaît aider. Je vous remercie.

+0

Vous avez dit que vous pouvez accéder à la db, que faites-vous pour essayer de récupérer les valeurs de celle-ci? – Eqomatic

+0

@Eqomatic j'utilise 'fetchall()'. Ici: - 'cursor.execute (" SELECT fruits FROM exemple ") x = cursor.fetchall()'. Je ne sais pas comment utiliser les valeurs dans x pour comparer avec l'entrée de l'utilisateur. –

Répondre

0

Sur la base de votre commentaire:

fruits = cursor.fetchall() 
for fruit in fruits: 
    if input == fruit: 
     print("Item exists") 
+0

il compare l'entrée utilisateur seulement avec la première rangée pas avec les autres. Existe-t-il une autre meilleure façon de faire cela, comme stocker toutes les valeurs de la colonne dans une seule ligne en tant que valeurs multiples et y accéder pour un traitement ultérieur sous la forme d'une liste de chaînes? –

+0

'pour les fruits dans les fruits:' boucle sur toutes les lignes de la colonne des fruits, en supposant que 'fetchall()' renvoie toutes les valeurs sous forme de liste. – Eqomatic