2016-08-06 10 views
1

誰でもこのコーディングを手伝ってもらえますか?1つの入力(python)で別の条件を作る方法

私は、RFIDカードのデータをMySQLデータベースに挿入したいと考えています。 RFIDリーダーでタグを最初にタップすると、データがMasukテーブルに挿入されます。タグをもう一度タップすると、プログラムはデータをKeluarテーブルに挿入します。

私はこのコードを正しく使っていますか?

import MFRC522 
import signal 
import time 
import MySQLdb 
import datetime 

db = MySQLdb.connect(host='localhost', 
       user='root', 
       passwd='12345678', 
       db='pa')<br> 
cursor = db.cursor() 

continue_reading = True 
MIFAREReader = MFRC522.MFRC522() 

cardA = [131,89,173,1,118] 

def read(): 
    read = 1 

def end_read(signal, frame): 


global continue_reading 
    continue_reading = False 
    print "Ctrl+C captured, ending read." 
    MIFAREReader.GPIO_CLEEN() 

signal.signal(signal.SIGINT, end_read) 

while continue_reading: 
    (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) 
    if status == MIFAREReader.MI_OK: 
    print "Card detected" 
    (status,backData) = MIFAREReader.MFRC522_Anticoll() 
    if status == MIFAREReader.MI_OK: 
    print "Card read UID: "+str(backData[0])+""+str(backData[1])+""+str(backData$ 
    if backData == cardA: 
     print "Selamat Datang Dheny" 
     if (read == True): 
      sql = """ INSERT INTO Masuk(Nama, No_ID, datetime) VALUES ('Dheny', $ 
     try: 
      cursor.execute(sql) 
      db.commit() 
     except: 
      db.rollback() 
     read = False 
     if (read == False): 
       sql = """ INSERT INTO Keluar(Nama, No_ID, datetime) VALUES ('Dhe$ 
     try: 
      cursor.execute(sql) 
      db.commit() 
     except: 
      db.rollback() 
     read = True 
+0

にアクセスして変更するためのコードを参照してくださいもし2,3,4があなたが望むものなら何でもします。 –

+0

タップを追跡するためにvarを設定しようとします。 – thesonyman101

+0

どうすればいいですか?タップの軌跡を保つ? タップ数をカウントしていますか? @ PavneetSingh –

答えて

1

その後、masukに挿入し、私はあなたはそれが1かどう.simply、タップのカウントを保持タップを追跡する方法がわからないグローバル変数

global count 


def modi(): 
    global count # required to modify the global copy 
    count=10 

def printc(): 
    if (count==10): # read it as a normal variable 
     print("yes") 


modi() 
printc() 
1

あなたが必要とするすべてはあなたが行動を達成しようとしている場合、私は知らない

if (count==True): 
     # insert into musak and update count to false 
    elif(count==False): 
     # insert into other table and update count to True 

のようなif and elif条件での動作を実現するためthis.createグローバル変数(カウント)のようなものです変数がreadの場合は変数がグローバルで、ifの代わりにelifを使用すると1つのケースしか実行できず、次のように値をreadに変更する必要があります。

if (read == True): 
    sql = """ INSERT INTO Masuk(Nama, No_ID, datetime) VALUES ('Dheny', $ 
    try: 
     cursor.execute(sql) 
     db.commit() 
    except: 
     db.rollback() 
    global read  # Needed to modify global copy of read 
    globvar = False  # next time read==False case will be executed  
    elif (read == False): 
    global read  # Needed to modify global copy of read 
    read = True  # next time read==True case will be executed   
    sql = """ INSERT INTO Keluar(Nama, No_ID, datetime) VALUES ('Dhe$ 
    try: 
     cursor.execute(sql) 
     db.commit() 
    except: 
     db.rollback() 
+0

ありがとうございました.D。 今すぐテストします。 –

関連する問題