PDA

Visualizza la versione completa : problemi con il db e python


gatto76
21-01-2017, 18:54
Salve a tutti, ho un problema che non riesco a risolvere... ho un db con delle informazione su degli orari... ora ho uno script (per velocizzare faccio un ciclo ogni 10 secondi) che non riesce a memorizzare nel caso cambi l'orario. Es ho impostato orario ore alle 8 i minuti a 20... faccio partire il programma tutto ok... Funziona ma se dal db cambio da 20 a 25, lo script mi mostra sempre 20 nonostante che faccio una chiamata al db ogni volta... Non so dove sbaglio , qualcuno mi puņ illuminare???
posto lo script di prova:


#!/usr/bin/env python


import wiringpi as gpio
from time import sleep
import datetime
import MySQLdb

menuo = True
blocco = True

# Open database connection
conn = MySQLdb.connect(host="localhost", user="miauser",passwd="miapassword", db="domotica")
c = conn.cursor()
#fine controllo setup
def orario_su():
for id_tap in range(1,9):
sql = "SELECT pos_attuale,pos_doveva,tur_notte,pos_program,dimen sione FROM tapparelle WHERE id='%s'" % (id_tap)
c.execute(sql)
results = c.fetchall()
for row in results:
pos_attuale = row[0]
pos_doveva = row[1]
tur_notte = row[2]
pos_program = row[3]
dimensione = row[4]
#print dimensione
if(dimensione == "grande"):
print "La tapparella e' grande" #print di prova


def menu_orario():
menuo = True
t = datetime.datetime.now()
if (blocco == True):
#sistema per orario
sql = "SELECT h_up,m_up,h_down,m_down,h_down_ultima,m_down_ultim a,attivo FROM orario_tap WHERE id=1"
c.execute(sql)
results = c.fetchall()
for row in results:
h_up = row[0]
m_up = row[1]
h_down = row[2]
m_down = row[3]
h_down_ultima = row[4]
m_down_ultima = row[5]
attivo = row[6]
print h_up #prova di lettura database
print m_up
if(attivo == "si"):
if((t.hour == h_up) and (t.minute == m_up)):
orario_su()

#fine sistema per orario





while True:
if (menuo == True):
menu_orario()
sleep(10)

gatto76
21-01-2017, 20:02
Problema risolto:
ho aggiunto un commit() quando faccio il chiamo alla query e ora funziona perfettamente...


c.execute("SELECT h_up,m_up,h_down,m_down,h_down_ultima,m_down_ultim a,attivo FROM orario_tap WHERE id=1")
# Execute the SQL command
conn.commit()
# Fetch all the rows in a list of lists.
results = c.fetchall()

Loading