2016-04-23 9 views
1

私はMAのトレイルのWebアプリケーションを作成しています。私はトレイルの名前をクリックしてその情報を表示させたいと思っています。私は10列の「ハイキング」というテーブルを持っています。今、私がトレイルの名前をクリックすると、そのページに表示されるのは唯一のもの()で、括弧は2つで、それ以外のものはありません。私は教授が私に与えた例に従おうとしていますが、私は何か間違っているようですが、何が何であるかは分かりません。Python Webアプリケーションの問題

ご協力いただければ幸いです!私が理解から

def getHikeInfo(name): 
# connect to db 
conn, cursor = getConnectionAndCursor() 

# prepare SQL 
sql = """ 
SELECT * 
FROM hiking 
WHERE name = %s 
""" 

# run the SQL 
cursor.execute(sql, name) 

# fetch the results 
data = cursor.fetchall() 

# clean up 
cursor.close() 
conn.close() 

return data 

################################################################################ 
if __name__ == "__main__": 

form = cgi.FieldStorage() 

if "name" in form: 
    name=form['name'].value 
    print getHikeInfo(name) 
+0

ウェストンのトレイルをチェックアウトして – Drew

+0

@ドリューハハハ、やる! –

+0

フォームに**名前を書いてください:**二重引用符を使わずに** – rocksteady

答えて

0

、あなたはタプルにあなたのnameクエリパラメータを配置する必要があります。

cursor.execute(sql, (name,)) 

そして、あなただけのfetchone()使用し、データベースから単一の行が必要な場合:

data = cursor.fetchone() 
+0

私はあなたが言ったことを試してみましたが、()の代わりに、Webページだけが「None」と言います。 –

+0

@smoody名前に一致するテーブルにレコードがないと思うのです。あなたはそれをデバッグして、 'name'の値が何であるか見ることができますか? – alecxe

+0

'name'はテーブル内のカラム名の1つです。私はそれをデバッグし、 'name'の値はトレイルの名前です(例:key name = name、value = Wells State Park)。 –

関連する問題