2017-05-14 2 views
-2

j'obtiens une erreur de syntaxe dans mon code:Syntaxe non valide CS50 Finance

if request.method == "POST": 
    quote = lookup(session["symbol"]) 
    name = quote["name"] 
    price = float(quote["price"]) 

    amount = db.execute("SELECT cash FROM users WHERE id=:user_id", user_id = session["user_id"]) 
    amount = float(amount[0]["cash"]) 

    if (int(request.form.get("number")) * price) >= amount: 
     return apology("You do not have enough money.") 

    new_amount = db.execute("UPDATE users SET cash = cash +: cost WHERE id =: user_id", user_id = session["user_id"], cost = quote["price"] * int(request.form.get("number")) 
    db.execute("INSERT into history (userID, stockSymbol, stockName, price, amount, buySell) VALUES (:userID, :stockSymbol, :stockName, :price, :amount, 1)", userID = session["user_id"], stockSymbol = session["symbol"], stockName = name, price = quote["price"] * int(request.form.get("number"), amount = int(request.form.get("number"))) 

    return redirect("") 

else: 
    return render_template("buy.html") 

Click here to see my database

C'est là l'erreur de syntaxe se produit:

db.execute("INSERT into history (userID, stockSymbol, stockName, price, amount, buySell) VALUES (:userID, :stockSymbol, :stockName, :price, :amount, 1)", userID = session["user_id"], stockSymbol = session["symbol"], stockName = name, price = quote["price"] * int(request.form.get("number"), amount = int(request.form.get("number")))

Quelqu'un pourrait-il expliquer une raison possible pourquoi?

+0

je pouvais, mais je suis toujours salée parce que la dernière fois que je répondu à une question de la vôtre (également une erreur triviale), vous venez de le supprimer. – melpomene

+1

À moins que quelqu'un ne remarque rapidement le problème, le moyen le plus rapide de faire fonctionner votre code serait de l'essayer avec un paramètre puis d'ajouter les autres un par un jusqu'à ce qu'il ne fonctionne pas, après quoi vous avez trouvé le problème. –

Répondre

2

Vous manquez la parenthèse sur ce morceau de code quote["price"] * int(request.form.get("number"))

Votre deuxième erreur est aussi un échec de la parenthèse sur cette ligne db.execute("UPDATE users SET cash = cash +: cost WHERE id =: user_id", user_id = session["user_id"], cost = quote["price"] * int(request.form.get("number")))

+3

J'espère que vous ne supprimerez pas la question. –

+0

Non, non, je ne vais pas le supprimer. Cela aide, mais il me donne toujours une erreur de syntaxe invalide. Je l'ai supprimé la dernière fois pour d'autres raisons. – Emikko29

+0

ce serait mieux si vous mettez à jour votre message et montrez la nouvelle erreur. –