Zabawa SQLem z pomocą Pythona, problem

0

Mam mały problem. Nie wiem jak sprawić by w przypadku wybrania złego wiersza wyświetlało mi odpowiedni komunikat:

import  subprocess

from subprocess import PIPE, Popen

import pymysql as mysql

x = input("Podaj numer id między 1 a 5 ")

conn = mysql.connect("127.0.0.1", "root", ","hasło", "mydb")
db = conn.cursor()
db.execute('SELECT FirstNAme, LastName, Pesel FROM mydb.clients WHERE idClients =' +x+"")
rows = db.fetchall()
for x in rows:
    print(x)
else: print("Brak danych")
conn.close()

W przypadku podania id np 2 wyświetlają mi się dane i komunikat brak danych, przy id 6 wyświetla mi się spodziewany komunikat

2

else po for wykonuje się tylko wtedy, gdy pętla nie zostanie przerwana (break), czyli w przypadku twojego kodu - zawsze. Nie wiem jakie API ma pymysql, ale nie możesz po prostu sprawdzić, czy rows nie jest puste przed tym, jak spróbujesz wypisać jakiekolwiek dane?

1 użytkowników online, w tym zalogowanych: 0, gości: 1