Daveloper87
Daveloper87

Reputation: 716

Trying to search a column on SQLite Python so that it only returns the information searched

New to Python and Databases

I have a database table set up with a column of usernames. I want the user to be able to search through the table via a raw_input and only return the values which are associated with that user name.

E.g. user searches for Bill and it only displays Bill's records ordered by a specified column

This is what I have so far but its obviously VERY wrong, hope someone can help:

def find_me(db, column_name):
    db = sqlite3.connect(db)
    cursor = db.cursor()
    name = raw_input("Please enter your username: ")
    cursor.execute("SELECT name FROM username WHERE name=?", (name,))
    cursor.execute("SELECT * FROM username ORDER BY "+column_name+" ASC")
    name = cursor.fetchone()
    next = cursor.fetchone()

Thank you in advance

Upvotes: 0

Views: 2424

Answers (1)

Jon Clements
Jon Clements

Reputation: 142136

You want to make the query similar to the following:

cursor.execute("SELECT name FROM username WHERE name=?", (name,))

This uses query parameters, so it's correctly escaped for the data provided. Then just adapt this to SELECT * and whatever else you want from the result.


Try working with this:

name = raw_input("Please enter your username: ")
query = "SELECT * FROM username WHERE name=? ORDER BY {0}".format(column_name)
cursor.execute(query, (name,))
for row in cursor:
    print row

Upvotes: 1

Related Questions