Jak mogę naprawić wyjście w moim liczeniu zapytania MySQL (kolba)

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)

W My Navbar.

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

Wyjście: {x0}}

0
mazekai18 21 luty 2019, 15:46

2 odpowiedzi

Najlepsza odpowiedź
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 
0
balderman 21 luty 2019, 15:40

Czy możesz spróbować zmienić stwierdzenie SQL Wybierz do następujących i sprawdź, czy rozwiązuje problem:

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

Następnie zmień następujące czynności:

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

noOfItems będzie miał krotkę z jednym elementem, wartością COUNT(*) tj. Liczba elementów w koszyku, w którym identyfikator użytkownika jest uid.

Mam nadzieję, że to pomoże!

0
Nathan 21 luty 2019, 16:52