Ausgabe nur des letzen Eintrages bei Mehrfacheingabe
Verfasst: Montag 5. November 2018, 10:02
Guten Tag und vielen Dank fürs durchlesen,
ich habe mir vorgenommen, eine Zeiterfassung zu erstellen und bin jetzt an folgendem Stand.
Ich kann über RFID-RC522 einen Chip auslesen und sowohl die Chipnummer als auch Datum und Uhrzeit der Erfassung in einer Datenbank speichern. 30 RFID sind geplant
Die Datenbank sehe ich über phpMyadmin.
Da die gleichen rfid mehrfach verwendet werden(es ändert sich nur Uhrzeit und datum), möchte ich in der Datenbank die Spalte rfid von oben nach unten auslesen und nur die letzte Zeile in der die rfid gefunden wird ausgeben.
in der Datenbank namens februar sind die Spalten id, name, rfid, date, time, login, logout vorhanden.
Ziel des ganzen ist es, beim erneuten scannen des Transponders zu erkennen, ob der davorliegende scan ein login oder logout war, um beim erneuten scan genau das gegenteil zu erzielen.
Für die Ausgabe der Abfrage reicht quasi das Ergebnis ob es login oder logout war. das brauch ich dann für die Weiterverarbeitung.
Kurz zu mir: Ich beschäftige mich erst kurz mit Python, Datenbanken und Co.
Ich hoffe es hat jemand lust mir zu helfen und kann mir einen Tip geben.
Ich habe etliches probiert und versucht umzusetzen....aber jetzt komme ich nicht weiter.
Das ist der Stand.
Auszug (hab das ganze auslesen des Transponders weg gelassen)
if status == MIFAREReader.MI_OK:
# Print UID
card_id = str(uid[0])+str(uid[1])+str(uid[2])+str(uid[3])
date = time.strftime("%Y.%m.%d")
time1 = time.strftime("%H:%M:%S")
#date1 = time.strftime("%d.%m.%Y %H:%M:%S")
print card_id
print (date)
print (time1)
lcd.lcd_backlight("ON")
lcd.lcd_display_string(card_id, 1)
lcd.lcd_display_string(time1, 2)
try:
connection = pymysql.connect(host="localhost", user="USER", passwd="geheim", db="Zeiterfassung")
except:
print "Keine Verbindung zum Server"
exit(0)
#Tabelle erzeugen
cursor = connection.cursor()
cursor.execute("INSERT INTO februar (rfid, date, time, login) VALUES (%s, %s, %s, %s)",(card_id, date, time1, "x"))
cursor.close()
connection.commit()
time.sleep(3)
lcd.lcd_clear()
lcd.lcd_backlight("OFF")
Vielen Dank.
Sollte ich irgendwelche Forenregeln verletzt haben, bitte ich um einen freundlichen Hinweis
freundliche Grüße Andre
ich habe mir vorgenommen, eine Zeiterfassung zu erstellen und bin jetzt an folgendem Stand.
Ich kann über RFID-RC522 einen Chip auslesen und sowohl die Chipnummer als auch Datum und Uhrzeit der Erfassung in einer Datenbank speichern. 30 RFID sind geplant
Die Datenbank sehe ich über phpMyadmin.
Da die gleichen rfid mehrfach verwendet werden(es ändert sich nur Uhrzeit und datum), möchte ich in der Datenbank die Spalte rfid von oben nach unten auslesen und nur die letzte Zeile in der die rfid gefunden wird ausgeben.
in der Datenbank namens februar sind die Spalten id, name, rfid, date, time, login, logout vorhanden.
Ziel des ganzen ist es, beim erneuten scannen des Transponders zu erkennen, ob der davorliegende scan ein login oder logout war, um beim erneuten scan genau das gegenteil zu erzielen.
Für die Ausgabe der Abfrage reicht quasi das Ergebnis ob es login oder logout war. das brauch ich dann für die Weiterverarbeitung.
Kurz zu mir: Ich beschäftige mich erst kurz mit Python, Datenbanken und Co.
Ich hoffe es hat jemand lust mir zu helfen und kann mir einen Tip geben.
Ich habe etliches probiert und versucht umzusetzen....aber jetzt komme ich nicht weiter.
Das ist der Stand.
Auszug (hab das ganze auslesen des Transponders weg gelassen)
if status == MIFAREReader.MI_OK:
# Print UID
card_id = str(uid[0])+str(uid[1])+str(uid[2])+str(uid[3])
date = time.strftime("%Y.%m.%d")
time1 = time.strftime("%H:%M:%S")
#date1 = time.strftime("%d.%m.%Y %H:%M:%S")
print card_id
print (date)
print (time1)
lcd.lcd_backlight("ON")
lcd.lcd_display_string(card_id, 1)
lcd.lcd_display_string(time1, 2)
try:
connection = pymysql.connect(host="localhost", user="USER", passwd="geheim", db="Zeiterfassung")
except:
print "Keine Verbindung zum Server"
exit(0)
#Tabelle erzeugen
cursor = connection.cursor()
cursor.execute("INSERT INTO februar (rfid, date, time, login) VALUES (%s, %s, %s, %s)",(card_id, date, time1, "x"))
cursor.close()
connection.commit()
time.sleep(3)
lcd.lcd_clear()
lcd.lcd_backlight("OFF")
Vielen Dank.
Sollte ich irgendwelche Forenregeln verletzt haben, bitte ich um einen freundlichen Hinweis
freundliche Grüße Andre