-2
I am making a system of "inventory", in it we have in the second screen a search screen and the third the screen that shows the results of the search. This search is a database search, but for now when I hit search it pops up all the records from the database, I wanted to know how to do a search filter. Follow the images and the code
[![telapesquisa][1]][1] [! [tellarearesultado][2]][2]
from PyQt5 import uic, QtWidgets, QtCore
from telamain import *
import mysql.connector
#Connect to mysql server
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="inventario"
)
def chama_telapesquisa():
nome_usuario = telamain.lineEdit.text()
senha = telamain.lineEdit_2.text()
if nome_usuario == "user" and senha == "123" :
telamain.close()
telapesquisa.show()
def telapesquisa():
idprodutosc = telapesquisa.lineEdit.text()
categoriasc = telapesquisa.lineEdit_2.text()
marcasc = telapesquisa.lineEdit_3.text()
modelosc = telapesquisa.lineEdit_4.text()
numseriesc = telapesquisa.lineEdit_5.text()
localsc = telapesquisa.lineEdit_6.text()
def chama_telaresultados():
telapesquisa.close()
telaresultados.show()
cursor = mydb.cursor()
comando_sql = "SELECT * FROM cpd_room"
cursor.execute(comando_sql)
dados_lidos = cursor.fetchall()
telaresultados.tableWidget.setRowCount(len(dados_lidos))
telaresultados.tableWidget.setColumnCount(8)
for i in range(0, len(dados_lidos)):
for j in range(0,8):
telaresultados.tableWidget.setItem(i,j,QtWidgets.QTableWidgetItem(str(dados_lidos[i][j])))
def volta_telapesquisa():
telaresultados.close()
telapesquisa.show()
app=QtWidgets.QApplication([])
telamain=uic.loadUi("telamain.ui")
telapesquisa = uic.loadUi("telapesquisa.ui")
telaresultados = uic.loadUi("telaresultados.ui")
telapesquisa.pushButton.clicked.connect(chama_telaresultados)
telaresultados.pushButton.clicked.connect(volta_telapesquisa)
telamain.pushButton.clicked.connect(chama_telapesquisa)
telamain.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)
telamain.show()
app.exec()
[1]: https://i.stack.imgur.com/A36Wh.png
[2]: https://i.stack.imgur.com/UVkcZ.png
Good morning Carlos! So, I had already tried this and I broke my head but I’m not getting it at all, if you can help me I would be very grateful. Taking this example of yours, my "idproductosc" is a correct search screen lineEdit? I wanted to write inside that lineEdit, and what’s being written there will be filtered into the results screen. Like: (ID: 2, Category: Mouse, Brand: Dell) .
– Lucas Santana
is pq id is unique... right? or am I getting it wrong? if it is a more general filter the command_sqlwould have to contain the SQL code
comando_sql = (f"SELECT * FROM cpd_room WHERE {idprodutosc};")
for example... you can make several entries likecomando_sql = (f"SELECT {idprodutosc} FROM cpd_room WHERE {categoriasc} BETWEEN {numseriesc} AND {numseriesc2};")
– Carlos Cortez