Filtre de recherche

Fermé
fXavier8 Messages postés 5 Date d'inscription jeudi 23 juin 2022 Statut Membre Dernière intervention 28 juin 2022 - Modifié le 23 juin 2022 à 14:19
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 23 juin 2022 à 16:35
Bonjour
Je commence unpeu le code et je voudrait savoir comment faire un filtre de recherche j'ai déjà tous fait le page de début j'arrive a me connecter a la base de données je voudrais savoir comment faire pour par exemple si je tape la lettre "a" ca me donne tous les noms de personnes qui commence par la lettre a
pourriez vous m'aider merci

<?php 
 if(isset($_POST['search']))
 {
  $valueToSearch= $_POST['valueToSearch'];
  $query = "SELECT * FROM `deliveries` WHERE CONCAT(`ID`, `LastName`, `FirstName`, `StreetNumber`, `Street`, `Inscription`, `Modif`, `Comment2020`, `Delivered`, `DeliveryDate2020`, `Comment2021`, `DeliveryDate2021`) LIKE'%".$valueToSearch."%'";
  $search_result = filterTable($query);
  
 }
 else{
  $query="SELECT * FROM `deliveries`";
  $search_result = filterTable($query);
 }
 function filterTable($query)
 {
  $connect = mysqli_connect("localhost","root","","limeil");
  $filter_Result=mysqli_query($connect, $query);
  return $filter_Result;
 }
?>
<!DOCTYPE html>
<html lang="fr">
 <head>
  <meta charset="UTF-8"/>
  <script type="text/javascript" src="script.js"></script> 
  <title>Fête du jardinage</title>
  <link rel="stylesheet" type="text/css" href="view.css"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 </head>
 <body> 
 
<div>
<img src ="logo.png">

<h1>Fete du Jardinage 2023</h1>
<a href="deconnexion.php">Se déconnecter</a> 
</div> 

 <header id="modal" style="display: none;">
   <header id="modalContent">
   <span id="closeModal">x</span>
    <form>
     <label id ="lastnameLabel" for="lastname">Nom : </label>
     <input id="lastname" type="text" name="lastname">
     <label id ="firstnameLabel" for="firstname">Prénom : </label>
     <input id="firstname" type="text" name="firstname">
     <label id ="streetnumberLabel" for="streetnumber">N°Rue : </label>
     <input id="streetnumber" type="number" name="streetnumber" min="1">
     <label id ="StreetLabel" for="street">Rue : </label>
     <input id="street" type="text" name="street">
     <label id ="commentlabel" for="coment">Commentaire : </label>
     <input id="comment"></textarea>
     <label id ="deliveredLabel" for="delivered">Remis : </label>
     <input id="delivered" type="checkbox" name="delivered">
     <input id="create" type="button" value="Créer">
     </form>
     
   </header>
  </header>
  <div id="sureModal">
   <header id="sureModalContent">
    <p>Etes-vous sûr de vouloir supprimer cette ligne ?</p>
    <header id="sureButtons">
     <button id="sureYes">Oui</button>
     <button id="sureNo">Non</button>
    </div>
   </div>
  </div>
  
  <main>
   <header id="top">
    <header>
      
      <label for="valueToSearch">Recherche :</label>
      <input type="text" name="valueToSearch" placeholder="">
      
    
    <label for="searchType">Rechercher par :</label>
      <select id="searchType" name="searchType">
      <option value="name">Nom/Prénom</option>
      <option value="adress">Adresse</option>
     </select>
    </header>    
    <button id="new">Nouveau</button> 
   </header>
   <header>
    <table id="table">
    <tbody>
  
  <table>
   <tr>
  
    <th>ID</th>
    <th>Nom</th>
    <th>Prénom</th>
    <th>N° Rue</th>
    <th>Rue</th>
    <th>Commentaire 2023</th>
    <th>Remis</th>
    <th>Remise 2023</th>
     <th>Commentaire 2022</th>
    <th>Remise 2022</th>
     </tbody>
   </tr>
   <?php while($row = mysqli_fetch_array($search_result)):?>
   <tr>
    <td><?php echo $row['ID'];?></td>
    <td><?php echo $row['LastName'];?></td>
    <td><?php echo $row['FirstName'];?></td>
    <td><?php echo $row['StreetNumber'];?></td>
    <td><?php echo $row['Street'];?></td>
    <td><?php echo $row['Comment2020'];?></td>
    <td><?php echo $row['Delivered'];?></td>
    <td><?php echo $row['DeliveryDate2020'];?></td>
    <td><?php echo $row['Comment2021'];?></td>
    <td><?php echo $row['DeliveryDate2021'];?></td> 
   </tr>
   <?php endwhile;?>     
   </table>   
   </form> 
    </table>
   </header>
  </main>
 </body>
</html>


EDIT : Ajout des balises de code
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
23 juin 2022 à 14:20
Bonjour,

Qu'est-ce qui ne va pas dans le code que tu nous montres ?
Qu'obtiens tu ? En quoi cela ne serait-il pas conforme à ce que tu attends ?

NB: A l'avenir, merci d'utiliser les BALISES DE CODE pour poster du code sur le forum
0
fXavier8 Messages postés 5 Date d'inscription jeudi 23 juin 2022 Statut Membre Dernière intervention 28 juin 2022 1
23 juin 2022 à 14:25
ok
le code marche bien
j'obtiens bien ce que je demande un tableau avec les noms prénom ect des personnes qui sont inscrit sur la base de données


mon problème cest que je voudrais savoir comment faire un filtre de recherche comme j'ai expliquer au-dessus
1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > fXavier8 Messages postés 5 Date d'inscription jeudi 23 juin 2022 Statut Membre Dernière intervention 28 juin 2022
23 juin 2022 à 14:28
Tu le fais déjà non ?
 if(isset($_POST['search']))
 {
  $valueToSearch= $_POST['valueToSearch'];
  $query = "SELECT * FROM `deliveries` WHERE CONCAT(`ID`, `LastName`, `FirstName`, `StreetNumber`, `Street`, `Inscription`, `Modif`, `Comment2020`, `Delivered`, `DeliveryDate2020`, `Comment2021`, `DeliveryDate2021`) LIKE'%".$valueToSearch."%'";
  $search_result = filterTable($query);
  
 }


Par contre, si tu veux juste le nom de famille "commence par" .. il ne faut pas concaténer tes champs pour la recherche... ni mettre de % en premier dans le critère

 if(isset($_POST['search']))
 {
  $valueToSearch= $_POST['valueToSearch'];
  $query = "SELECT * FROM `deliveries` WHERE `LastName` LIKE '".$valueToSearch."%'";
  $search_result = filterTable($query);
  
 }
0
fXavier8 Messages postés 5 Date d'inscription jeudi 23 juin 2022 Statut Membre Dernière intervention 28 juin 2022 1 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
23 juin 2022 à 14:32
oui
normalement j'ai fais le code pour faire un filtre mais malheureusement ca ne fonctionne pas quand je mets une lettre rien ne se passe je ne comprends pas
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > fXavier8 Messages postés 5 Date d'inscription jeudi 23 juin 2022 Statut Membre Dernière intervention 28 juin 2022
23 juin 2022 à 16:35
Pour tes champs de recherche.. tu ne les a pas mis dans un FORM
Il n'y a pas de bouton dont le NAME est "search"

... normal donc que rien ne se passe
0