2015-12-31 2 views
0

enter image description hereMySQL сумма только производство 1

Я озираясь для решения, но не могу определить, что я делаю неправильно. У меня есть база данных mysql с таблицей с двумя столбцами: clock (содержит временную метку) и состояние (либо содержит 1, либо 0). Когда на моем макете нажимается кнопка (я использую малиновый pi), в базу данных, которая постоянно обновляется, вводится 1, и если кнопка не нажата, в таблицу вводится 0. Это работает, поскольку я выбираю таблицу в командной строке, и отображается соответствующее число 1 и 0.

В отдельном файле python вызывается база данных и таблица, и предположительно получается сумма столбца состояния, а если это 1 или более, я знаю, что кнопка была нажата за последние 30 секунд, поскольку таблица будет очищаться каждые 30 секунд.

Проблема в том, что, однако, много 1 и 0, и даже когда таблица пуста, сумма возвращает только 1. Я очень новичок в python, поэтому эта ошибка может быть довольно затруднительной, спасибо за вашу помощь все равно!

Вот весь питон файл на сумму:

import MySQLdb 

conn = MySQLDB.connect('localhost', 'root', 'password', 'sensordb') 
cur = conn.cursor() 

but1 = cur.execute("SELECT SUM(state) FROM button1") 
print "%d" % but1 
+0

Показать схему и данные таблицы. –

+0

ive добавил схему и ее пустую на данный момент – joshmh

ответ

0

Вам нужно выбрать строку, а также.

cur.execute("SELECT SUM(state) FROM button1") 
row = cur.fetchone() 

    while row is not None: 
     print(row) 
     row = cur.fetchone() 
+0

Спасибо, что это сработало хорошо! – joshmh

+0

Если этот ответ вам помог, пожалуйста, примите и проголосуйте. Спасибо @joshmh –

0

Вы почти там ....

После cur.execute (....)

Затем нужно прочитать вывод ...

for result in cursor.execute("Your QUERY"): 
    if result.with_rows: 
    print("Rows produced by statement '{}':".format(
     result.statement)) 
    print(result.fetchall()) 

Надеюсь, это вам поможет ....

Смежные вопросы