Salut à tous.
je code un logiciel d'enregistrement et recherche et tri de contacts dans une base de données SQLite3 en python 3.9
Mes contacts sont stockés dans une table sqlite3 nommée Annuaire.
je dispose d'un widget sur lequel j'ai:
1. Un QTableWidget permettant d'afficher les résultats des requetes
2. D'un QComboBox nommé cborecherche qui contient les étiquettes des colonnes de ma table Annuaire
3. D'un QLineEdit nommé Textboxrecherche qui me permettra de faire le tri
Mon objectif est de faire le tri lettre par lettre et afficher le résultat dans le QTablewidget.
Par exemple: je choisis une valeur de la QComboBox par exemple Noms et ensuite si j'entre la lettre "b" dans la textbox cela doit me trier et afficher tous les noms commencant par la lettre "b". Si de plus j'ajoute la lettre "e" cela me tri et m'affiche tous les noms commencant par "be" et ainsi de suite. (Donc un tri lettre par lettre)
L'affichage dans le QTableWidget marche bien mais le problème c'est la syntaxe sqlite3 qui doit me permettre de faire ce genre de tri avancé.
J'ai déja regardé au net fatigué et je suis tombé sur la fonction Like qui fait pas mal de chose mais ne me fait pas ce genre de tri.
Voici mon code simplifié
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
        self.textboxrecherche.textChanged.connect(self.research)
 
    def research(self):
        #self.table.clear()
        data = [self.cborecherche.currentText(), self.textboxrecherche.text()]
        database_creation()
        connexion = sqlite3.connect("phonebook_Database.db")
        cur = connexion.cursor()
        req = "SELECT* FROM Annuaire WHERE ? LIKE ? "
        cur.execute(req, data)
 
        # Affichage des éléments triés de la table dans mon QtableWidget nommé table
        myResult = cur.fetchall()
        self.table.setRowCount(0)
        for i, row_data in enumerate(myResult):
            self.table.insertRow(i)
            for j, data in enumerate(row_data):
                self.table.setItem(i, j, QtWidgets.QTableWidgetItem(str(data)))
Merci pour votre aide.
C'est vrai que le pb concerne beaucoup plus sqlite mais j'ai pas trouvé un forum sqlite3 de pyhon sur le site.
mes excuses pour la longueur de mon problème.