COMMENT filtrer les données provenant d'une base de données
soumahila -
Bonjour tout le monde,
Je travaille sur mon projet de fin d'étude ,et dans ce projet là il Ya une partie là où je dois afficher et filtrer les données provenant d'une base de données en fonction d'une liste déroulante HTML . Franchement dit après toutes les tentatives cela fait maintenant très longtemps que je suis bloqué au même niveau. SVP J'ai vraiment besoin de votre aide pour franchi cette étape . AIDEZ MOI SVP.
MERCI.
- COMMENT filtrer les données provenant d'une base de données
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Base de registre - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
16 réponses
bonjour,
quand tu postes du code, merci de le faire comme expliqué ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
As-tu une question à propos de ce code?
<body> <div class="container" > <div class="box-1"> <div class="profil"> <img src="logo.png" alt=""> <h3>Centre medical de suivi des donneurs de sang</h3> </div> <div class="input"> <form action="" method="POST"> <SELECT name="AGE" id="" class="option"> <option value="">--AGE--</option> <option value="1">TOUS</option> <option value="2">ADULTE</option> <option value="">ENFANT</option> </SELECT> </div> <div class="input" > <Select name="Sexe" id="" class="option" > <option value="" ="">----SEXE--</option> <option value="1">H</option> <option value="2">F</option> <option value="3">Autres</option> </Select> </div> <div class="input"> <input type="date" name="Date_Visite" class="option"> </div> <div class="input"> <Select name="Resultat" id="" class="option"> <option value="" ="">----RESULTAT DEPISTAGE--</option> <option value="1">TOUS</option> <option value="2">NEGATIF</option> <option value="2">POSITIF</option> </Select> </form> <input type="submit" name="submit" id="" value="Afficher"> </div> </div> <div class="box-2"> <div class="haut"> <p class="titre">Patients Dépistés</p> </div> <div class="sousbox2"> <table class="table"> <h1 align="center">TABLEAU</h1> <thead> <tr> <th>Code</th> <th>DateVisite</th> <th>Sexe</th> <th>AGE</th> <th>Resultat</th> </tr> </thead> <tbody> <?php if (isset($_POST['submit'])) { $AGE = $_POST['AGE']; $Sexe = $_POST['Sexe']; $DateVisite = $_POST['DateVisite']; $Resultat = $_POST['Resultat']; if($AGE != "" || $Sexe != "" || $DateVisite != "" || $Resultat != "" ){ $query = "SELECT * FROM tblecdv where AGE = '$AGE' OR Sexe = '$Sexe' OR DateVisite='$DateVisite' AND RESULTAT = '$RESULTAT' "; $result=mysqli_query($connection, $query) or die('error'); while ($row = $result->fetch_assoc()) { echo " <tr> <td>" . $row["Code"] ."</td> <td>" . $row["DateVisite"] ."</td> <td>" . $row["Sexe"] ."</td> <td>" . $row["AGE"] ."</td> <td>" . $row["RESULTAT"] ."</td> </tr>"; } } ?> </tbody> </div> <div class=""> </div> </div> </body>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOui mon problème est que quand j'exécute cette portion de code rien ne s'affiche à l'affichage les données issu de la base de données ne s'affiche pas alors que toutes les connexions sont belles et bien établies
Bonjour,
Fais donc un echo de ta variable $query ... puis testes le résultat directement dans ta bdd (via phpmyadmin)
Tu devrais voir que ta requête est mal formulée ....
echo $query = "SELECT * FROM tblecdv where AGE = '$AGE' OR Sexe = '$Sexe' OR DateVisite='$DateVisite' AND RESULTAT = '$RESULTAT' "; exit();
Il m'affiche toujours rien.
Cordialemnt.
Bonjour,
Merci beaucoup yg_be votre Aide. Le problème d'affichage est résolu mes données s'affiche correctement . maintenant en ce qui concerne le filtrage le filtrage des données à travers les listes déroulante html franchement dit j'ai besoin de votre aide.
<?php // on va créer une connexion a la base de données $server="127.0.0.1"; $user="root"; $pass =""; $dbname="base_kokhoua"; // Create connection $connection = mysqli_connect($server, $user, $pass, $dbname); // if (!$connection){ die("conenction failed: " . mysqli_connect_error()); } else{ echo "connection Etsablished"; } $query = "SELECT * FROM tblecdv" ; $result=mysqli_query($connection, $query) or die('error'); //if (!result) { //die("Invalid query: " . $connection->error); //} ?> <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> .container{ width: 100%; height:100%; color: ; margin: auto ; display:flex; border : 2px solid black; } .box-1{ width: 100%; height:100%; margin: 3px; border: 1px solid black; } .box-2{ width:800px; height:800px; margin: 3px; border:1px solid black; } .container .box-1 .profil{ display: block; width: 300px; height: 200px; border:1px solid black; background-color: #37C9C9; } .input{ display: block; width: 300px; height: 84px; border:1px solid black; } .option{ display:block; width:250px; height: 20px; margin: 25px ; border:1px solid black; text-align: center; } .haut{ display: block; width: 800px; height: 100px; background-color: #37C9C9; border:1px solid black; margin: auto; } .haut .titre{ margin: 30px; text-align:center; font-weight: bold; color: #000000; font-size: 40px; } .Tableau{ text-align:center; width: 900px; height:500px; border:3px solid black; margin: auto; } table{ border-collapse: collapse; margin:auto; width: 500px; height: 200px; } th, td{ border: 1px solid black; padding: 10px; border-spacing: 5px; font-weight: bold; width: 500px; } .sousbox2{ width: 800px; height:500px; display: block; overflow: auto; } </style> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script> </head> <body> <div class="container" > <div class="box-1"> <div class="profil"> <img src="logo.png" alt=""> <h3>Centre medical de suivi des donneurs de sang</h3> </div> <div class="input"> <form action="" method="POST"> <SELECT name="AGE" id="" class="option"> <option value="">--AGE--</option> <option value="1">TOUS</option> <option value="2">ADULTE</option> <option value="">ENFANT</option> </SELECT> </div> <div class="input" > <Select name="Sexe" id="" class="option" > <option value="" ="">----SEXE--</option> <option value="1">H</option> <option value="2">F</option> <option value="3">Autres</option> </Select> </div> <div class="input"> <input type="date" name="Date_Visite" class="option"> </div> <div class="input"> <Select name="Resultat" id="" class="option"> <option value="" ="">----RESULTAT DEPISTAGE--</option> <option value="1">TOUS</option> <option value="2">NEGATIF</option> <option value="2">POSITIF</option> </Select> </form> <input type="submit" name="submit" id="" value="Afficher"> </div> </div> <div class="box-2"> <div class="haut"> <p class="titre">Patients Dépistés</p> </div> <div class="sousbox2"> <table class="table"> <h1 align="center">TABLEAU</h1> <thead> <tr> <th>Code</th> <th>DateVisite</th> <th>Sexe</th> <th>AGE</th> <th>Resultat</th> </tr> </thead> <tbody> <?php while ($row = $result->fetch_assoc()) { echo " <tr> <td>" . $row["Code"] . "</td> <td>" . $row["DateVisite"] . "</td> <td>" . $row["Sexe"] . " </td> <td>" . $row["AGE"] . "</td> <td>" . $row["Resultat"] . "</td> </tr>"; } ?> </tbody> </div> <div class=""> </div> </div> </body> </html>
Voici Tout mon code .les données s'affiche correctement mais je ne sais pas comment faire pour filtrer les données en fonction des options des listes déroulantes.
Cordialement.
Oui parce que quand je mets le code de filtrage les données n'apparaissent plus et quand le modifie pour juste l'affichage il m'affiche mes données doc je me suis dire que peut être la méthode de filtrage n'est pas correcte donc du coup j'ai dû le supprimé.
Salut, quelques remarques pour vous aider:
Si vous parlez de tri sur la base de données il s'agit de SQL(langage des bases de données et de programmation).
Pour vérifier vos requêtes(SQL) vous pouvez les tester directement sur le serveur de bases de données en utilisant la console. Avec PHPMyadmin/WAMP la console SQL est accessible directement dans les menus.
PHP est un langage serveur qui fait le lien entre une page HTML et la base de données dans les deux sens:
Du serveur PHP pour afficher des données issues de la base et "écrire" la page HTML, en tout cas les parties dynamiques. PHP va permettre de traiter les données(issue de la requête sur la BDD) et de les afficher
De la page HTML vers la base de données, PHP permet de construire la requête pour par exemple une insertion en récupérant des données envoyées par la page HTML. Cela se fait généralement en utilisant un formulaire HTML correctement renseigné.
Dans le cas qui vous intéresse il vous faut construire le formulaire avec les données utiles(une liste déroulante par ex.) puis faire la requête SQL à partir des données reçues par PHP. Puis traiter à nouveau les résultats de la requête pour les afficher dans le HTML.
Voilà on peut déjà remarque que vous avez un soucis dans le formulaire HTML puisque vous ne remplissez pas l'attribut action qui doit indiquer une page PHP qui va rreçevoir et traiter les données envoyées du formulaire HTML:
<form action="" method="POST">
Une recherche "formulaire PHP" vous fournira une liste de tutos et d'exemple complet. Pour le reste le langage SQL est relativement simple et adapté à toutes ortes de tris et regroupements mais cela ne veut pas dire qu'il ne faut pas apprendre(et vérifier vos requêtes éventuellement).
bon travail.
Ok merci pour votre remarque .
Les listes déroulantes ont été déjà fait, et les options des différentes listes déroulantes ont déjà été rempli avec html .Mais ce que je veux fait c'est juste les filtré avec ces options-là.
Aussi l'attribut action vient d'être rempli mais toujours rien.
Ou bien vous demandez à ce que je récupère les données directement de la base de données à travers PHP pour rempli les options?
Cordialement.
Bonjour,
excusez-moi si je vous répond maintenant c'est que à la maison je n'ai pas de connexion.
après avoir appliqué vos remarques et suggestion mes données n s'affiche toujours pas.
j'ai l'impression que le problème est du à l'affichage au niveau de php ou HTML parce qu'il ne m'affiche aucun message d'erreur le seul message qu'il m'affiche est le message qui montre que la connexion a été établie au niveau de la connexion à la base de donnée
La suggestion en #9, c'est d'afficher le texte de la requête, et de la tester directement dans ta bdd (via phpmyadmin).
As-tu fait cela?
OUI QUAND j'exécute la requête dans PHPMYADMIN elle m'affiche aucune valeur mais les en tête de colonnes