Как исправить вывод в запросе количества MySQL (колба) - PullRequest
0 голосов
/ 21 февраля 2019

Как я могу исправить вывод в моем запросе подсчета mysql (фляга)

def addcart():
    cur = mysql.connection.cursor()
    if 'uid' not in session:
        noOfItems = 0
    else:
        uid = session['uid']
        cur.execute("SELECT count(id_phone) FROM cart WHERE id_users = " + str(uid))
        noOfItems = cur.fetchall()
    return (noOfItems)


@app.route('/')
def index():
    noOfItems = addcart()
    return render_template("index.html", noOfItems=noOfItems)

в моей навигационной панели

<a href="#" class="btn btn-more i-left">
<small><span class="badge badge-primary">{{noOfItems}}</span></small>
</a>

OUTPUT : ({'count(id_phone)': 3},)

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Можете ли вы попробовать изменить свой оператор SQL SELECT на следующий и посмотреть, решит ли это вашу проблему:

cur.execute("SELECT COUNT(*) FROM cart WHERE id_users = " + str(uid) +";")

, затем измените следующее значение на:

noOfItems = cur.fetchone()
return noOfItems[0]

noOfItems будетудерживайте кортеж с одним элементом, значение COUNT(*), т.е. количество товаров в вашей корзине, где идентификатор пользователя равен uid.

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

0 голосов
/ 21 февраля 2019
def get_num_of_items():
    cur = mysql.connection.cursor()
    if 'uid' not in session:
        num_of_items= 0
    else:
       uid = session['uid']
       cur.execute("SELECT count(id_phone) FROM cart WHERE id_users = " + str(uid))
       # cur.fetchone() return a dict with a single key:value pair
       num_of_items =  [v for v in cur.fetchone().values()][0]
    return num_of_items 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...