2016-04-05 17 views
0

私はSQLiteデータベースを初めて使っているので、何が問題か分かりません。車のリストとその料金が世界中に存在するデータベースを作成したいと思います。データベースに追加する前に値が存在するのを見つける方法はありますか?

import sqlite3 
db = sqlite3.connect('Car.db') 
cur= db.cursor() 
var = (int)(input("How many cars you want to enter?")) 
for i in range(var): 
    Has = input('CAR :') 
    for name in Has: 
     cur.execute('SELECT count(*) FROM CARS WHERE Name = ?',(name,)) 
     base = cur.fetchone()[0] 
     if base ==0: 
      print('CAR EXISTS') 
     else: 
      some = input('RATE:') 
      cur.execute('''INSERT INTO CARS(Name,Rate)VALUES(?,?)''',{'Name':Has,'Rate':some}) 
db.close() 

私が入った車が私のデータベースに追加する前にすでに存在しているかどうかを確認したいが、私はそうするとき、それは次のように出力

CARを示しています:Audi CARは CARが CARが をEXISTS EXISTS EXISTS CARは

は私が文を挿入したCLさんのコメントによると、あなたに

編集

ありがとうEXISTSループはこの CARのように一つ一つの文字の上に繰り返されていること:アウディ CARが既に をu CARはすでに ので

に私はそれを解決EXISTS EXISTSが、私は同じエラーを取得し、ここで は、私がどのようにあります解決:

for name in Has,: 

の作業コード:

import sqlite3 
db = sqlite3.connect('Cars.db') 
cur= db.cursor() 
var = (int)(input("How many cars you want to enter?")) 
for i in range(var): 
    Has = input('CAR :') 
    for name in Has,: 
     cur.execute('SELECT count(*) FROM CARS WHERE Name = ?',(name,)) 
     base = cur.fetchone()[0] 
     if base>0: 
      print('CAR EXISTS') 
     else: 
      some = input('RATE:') 
      var = '''INSERT INTO CARS(Name,Rate)VALUES(?,?)''' 
      cur.execute(var,(name,some)) 
db.commit() 
db.close() 
[私はこのコードを提供し、なぜ私のコードは非常にいくつかのエラーが含まれて回答するほか]
+0

'name'の値を出力します。 –

+0

@ CL。これを説明していただけますか? nameは反復に使用される変数です。 – user105127

+0

'print(name)'ステートメントを挿入します。 –

答えて

0
if base ==0: 
     print('CAR EXISTS') 

行数がゼロの場合、「EXISTS」が印刷されます。 これは間違っています。車が存在するとき、一致する行の数はゼロより大きい。

+0

最後に計算して、base> 0の場合に変更して動作させました。ありがとうございました – user105127

関連する問題