Partage
  • Partager sur Facebook
  • Partager sur Twitter

PHP & MYSQL, moteur de recherche

    10 décembre 2018 à 10:52:21

    Salut ! Je souhaiterais ajouter un moteur de recherche à un site, mais je rencontre un problème avec mon script:

    voici mes différents script:

    <form action="search_result.php" method="GET">
                  <div class="col-md-12 col-md-offset-2">
                  <div class="input-group primary"> 
                   <input type="search" class="form-control" name="search" placeholder="Rechercher un client"> 
                   <span class="input-group-btn"> 
                    <button class="btn btn-primary" type="submit"><i class="icon fas fa-search"></i></button> 
                   </span> 
                  </div>
                </div>
                </form>

    le script de traiteament:

    if (isset($_GET['submit'])) {
        $errors = array();
        $success = array();
        $search = htmlspecialchars($_GET['search']); //pour sécuriser le formulaire contre les failles html
        $search = trim($search); //pour supprimer les espaces dans la requête de l'internaute
        $search = strip_tags($search); //pour supprimer les balises html dans la requête
    
        if (isset($search)) {
          $req = $db->prepare("SELECT code_client, lastname, firstname, piece, contact, suscribe_at FROM clients WHERE code_client LIKE ? OR  cont");
          $req->execute(array("%".$search."%", "%".$search."%"));
        }else{
          $errors['variable'] = "Aucun resultat n'a été trouvé";
        }
      }
    
    ?>

    et j'aimerais afficher le résultat dans un tableau. voici le script:

    <?php 
    
          while ($search_find = $req->fetch()) {
            ?>
            <table class="table">
            <thead>
              <tr>
                <th scope="col">CODE CLIENT</th>
                <th scope="col">NOM</th>
                <th scope="col">PRENOMS</th>
                <th scope="col">NUMERO DE PIECE</th>
                <th scope="col">CONTACT</th>
                <th scope="col">DATE D'INSCRIPTION</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <th scope="row"><?php echo $search_find['code_client']; ?></th>
                <th scope="row"><?php echo $search_find['lastname']; ?></th>
                <th scope="row"><?php echo $search_find['firstname']; ?></th>
                <th scope="row"><?php echo $search_find['piece']; ?></th>
                <th scope="row"><?php echo $search_find['contact']; ?></th>
                <th scope="row"><?php echo $search_find['suscribe_at']; ?></th>
              </tr>
            </tbody>
          </table>
    
            <?php
          }
          $req->closeCursor();
         ?>

    Merci de bien vouloir m'aider.




    -
    Edité par berengerouohi 10 décembre 2018 à 11:09:11

    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2018 à 10:58:55

      Bonjour,

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Moteur de recherche)

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        10 décembre 2018 à 11:10:29

        Lamecarlate a écrit:

        Bonjour,

        Mauvais titre

        Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

        Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

        De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

        Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

        Pour modifier votre titre, éditez le premier message de votre sujet.

        (titre originel : Moteur de recherche)

        ok, bien reçu... Merci

        • Partager sur Facebook
        • Partager sur Twitter
          10 décembre 2018 à 11:16:16

          Bonjour,

          Le message d'erreur indique que $req n'existe pas, impossible d'en dire plus avec les bouts de code montrés, on ne sait pas où est la ligne 132.

          Après la requête

                $req = $db->prepare("SELECT code_client, lastname, firstname, piece, contact, suscribe_at FROM clients WHERE code_client LIKE ? OR  cont");

          se termine abruptement, il manque manifestement un bout.

          Il faudrait donc activer les erreurs PDO (voir ma signature), parce que ça devrait klaxonner à cet endroit aussi.

          • Partager sur Facebook
          • Partager sur Twitter
            10 décembre 2018 à 12:03:28

            philodick a écrit:

            Bonjour,

            Le message d'erreur indique que $req n'existe pas, impossible d'en dire plus avec les bouts de code montrés, on ne sait pas où est la ligne 132.

            Après la requête

                  $req = $db->prepare("SELECT code_client, lastname, firstname, piece, contact, suscribe_at FROM clients WHERE code_client LIKE ? OR  cont");

            se termine abruptement, il manque manifestement un bout.

            Il faudrait donc activer les erreurs PDO (voir ma signature), parce que ça devrait klaxonner à cet endroit aussi.

            Ok merci. voici le code qui se situe à la ligne 132:

            while ($search_find = $req->fetch())

            et voci le script de ma base de données:

            <?php 
            
             	$dbhost = 'localhost';
             	$dbname = 'plateforme_web';
             	$dbuser = 'user';
             	$dbpswd = '******';
            
             	try{
             		$db = new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dbuser,$dbpswd,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
             	}catch(PDOexception $e){
             		die("Une erreur est survenue lors de la connexion à la base de données");
             	}
            
              ?>

            j'appelle les erreurs PDO en warning.




            • Partager sur Facebook
            • Partager sur Twitter
              10 décembre 2018 à 13:26:42

              Et donc WHERE code_client LIKE ? OR  contc'est normal ? o_O

              Si $req n'existe pas c'est donc probablement que $search n'existe pas;

              -
              Edité par philodick 10 décembre 2018 à 13:27:58

              • Partager sur Facebook
              • Partager sur Twitter

              PHP & MYSQL, moteur de recherche

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown