首页 > 解决方案 > 代码没有被执行,程序跳出循环,等待另一个命令

问题描述

当在数据库中找不到任何内容时,我试图返回“未找到搜索”,但程序只是跳出循环

我尝试检查0or '',但意识到数据库返回NoneType。我现在正在检查None,但代码仍然没有被执行。

def search():
    def searchmenu():
        print('')
        ans=str(input('Make another [s]earch or return to the [m]ain menu: '))
        ans=ans.lower()
        if ans=='s':
            Inventory.search()
        elif ans=='m':
            menu=MainMenu()
            menu.menuops()   
        else:
            print('invalid menu option')
            searchmenu()

        mydb = mysql.connector.connect(host="localhost", user="root", password="", database="pharmd")
        cursor = mydb.cursor()
        query=str(input("Search: "))
        if query != "":
            cursor.execute('SELECT * FROM drugs WHERE name LIKE "%'+query+'%"')
            results=cursor.fetchall()
            if results != None:
                for data in results:
                    print('found!')
                    print(data)
                    searchmenu()
            else:
                print('No results found')
        else:
            print('Please enter a valid search!')
            print('')
            Inventory.search()

标签: python-3.x

解决方案


问题是它cursor.fetchall()不返回 None 而是一个空的 tuple ()

您可以cursor.rowcount根据此问题的答案检查空结果。


推荐阅读