Datenbank aktualisieren mit While schleife

  • Ich bastele seit einiger zeit an einem GPSempfänger mit dem Raspberry die daten auszulesen usw ist ja nicht schwer doch häng ich momentan fest.
    und zwar hab ich folgendes Problem ich versuche die GPs daten auf einen server zu laden und dies in einer while schleife dazu verwende ich folgenden script

    das script soll solange das gps läuft daten auf die datenbank schrieben


    gpsp.start() # start it up
    while True:

    os.system('clear')

    db = MySQLdb.connect(db="",user="",host="", passwd="")
    cursor = db.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS GpsStandort(uid int, daten)")
    cursor.execute("INSERT INTO GpsStandort values(0, 'GPSDaten')")
    cursor.close()
    db.commit()

    time.sleep(10) #set to whatever


    hat jemand ne Idee wie ich es hinbekomme das das ganze auch in der schleife läuft [/php]

    • Offizieller Beitrag

    bis auf die Einrückung (beim Kopieren passiert?) läuft es doch alles nach while true in der schleife :denker: Du solltest natürlich innerhalb der Schleife auch bei jedem Durchlauf die GPS Daten abfragen. Oder willst du wissen wie du die Werte aus deiner gpsp Klasse in die Schleife kriegst?

  • Danke an dbv hast recht ich hab in dem Code den ich reingesetzt hab garnicht die gps Daten in der Schleife :wallbash: aber das ist nicht das eigentliche Problem hier mal den gesamten Code jetzt sind auch die gps Daten in der Schleife

    ich bekomme folgende fehlermeldung

    Code
    webide@raspberrypi /usr/share/adafruit/webide/repositories/my-pi-projects/GPS1Test $ sudo python GPStest1.py                         
      File "GPStest1.py", line 43                                                                                                        
        os.system('clear')                                                                                                               
        ^                                                                                                                                
    IndentationError: unexpected indent


    ich hab das eigentliche problem hier mal in nem anderen script reduziert

  • IndentationError: unexpected indent

    Das heißt due Einrückung ist Fehlerhaft. du darfst entweder NUR Tabs oder NUR Leerzeichen verwenden. Und du musst darauf achten, dass überall die selbe Anzahl Leerzeichen ist, wenn es nicht "tiefer" gehört weil es Inhalt der Schleife, des if, der Funktion etc ist.

    Das aktuelle Problem scheint zu sein, dass das while True: auskommentiert ist, du das os.... aber trotzdem eingerückt hast.

    Die Zeile die du nicht verstehst solltest du so auch nicht verstehen, die kann nicht funktionieren. Prinzipiell ist alles korrekt, aber es fehlen Daten...
    Du erstellst ein Datenbank-Objekt und verbindest dieses gleichzeitig und automatisch mit dieser, dafür musst du aber eine Datenbank (db, z.B. "GPSDB", die musst du natürlich angelegt haben), einen Nutzer (user), wo die Datenbank liegt (host, meist "localhost") und das korrekte Passwort angeben.

    Und dieser Befehl wird auch Fehlschlagen, du prüfst aber niemals ob db ein korrektes Objekt liefert... Ich bin bloß Überrascht, dass keine Exception fliegt, aber ich spreche auch noch kaum Python... (Aber es wird, ich brauche es tatsächlich gerade für die Uni :) )

  • An das mit den lehrzeillen hab ich garnichtmehr gedacht

    Ist auch schonwieder nen paar Jahre her das ich das letztemal Python programiert hab und da wars auch nur ganz wenig sprich ich musste von vorne anfangen
    Ich mach übrigens grad ne Weiterbildung im Oberstufenzentrum zum Elektrotechniker da programier ich meist Java
    ich werd das ganze mal ausprobieren und dan meld ich mich nochmal obs geht oder nich
    ich bedankmich schonmal für die hilfe:danke_ATDE:

  • Also danke an alle das ganze funktioniert jetzt muss noch raus finden wie ich die Tabellen in der Datenbank aktualisier und nicht nur erweiter

    für alle die das noch probieren auf jeden fall darauf achten das es die Datenbank noch nicht gibt bzw sie falsche angaben enthält double int usw für die tabbeleninformation

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!