Because you're only getting the first row of the query result, even though
the cursor that contains the result (should be server side in this case)
does have more rows.
On Thu, Feb 1, 2018 at 3:50 PM brandon wallace <nodn...@gmx.us> wrote:

> I have created a function to search a Postgresql database but it only
> pulls up the first row of the database no matter what value I search for.
> Why would it only pull up the first row of the database? I am using
> Psycopg2 2.6 and Python 3.5.
> ...
> def search(title=None, isbn=None, year=0):
>     '''Search the database rows'''
>     conn = psycopg2.connect("dbname='books'")
>     cur = conn.cursor()
>     cur.execute("SELECT books.title, books.isbn, books.year FROM books
> WHERE books.title = title OR books.isbn = books.isbn OR books.year = year")
>     rows = cur.fetchone()
>
There's your problem. You'll want to either use fetchall() if you want to
get all the rows, see
http://initd.org/psycopg/docs/cursor.html#cursor.fetchone

>     conn.close()
>     return rows
>
best,
D

Reply via email to