Moteur de recherche sur une table

Moteur de recherche sur une table - PHP - Programmation

Marsh Posté le 03-11-2015 à 15:19:55    

Salut Je veux créer un moteur de cherche sur une table nommée ''clients'' et qui comporte les champs ''prenom'' et ''nom'' mais à chaque fois que j'effectue une recherche aucun résultat ne 's'affiche , même pas un message d'erreur , j'ai beau regardé mon code mais je n'arrive pas à trouver la ou ca déconne , est ce que quelqu'un pourrait me fournir son aide<br>merci <br>voici mon code:<br><!DOCTYPE html>
 
     <html>
       
         <head>
               <title> Moteur de recherche</title>
               <meta charset ='UTF-8'/>
           
         </head>
           
            <body>
            <?php
            if(isset($_POST['query']) && !empty($_POST['query']))
             
             {
                    $query= preg_replace("#[^a-z?0-9]#i","",$_POST['query']);
                     
                    $sql= "SELECT id,prenom AS title FROM clients WHERE prenom LIKE ? OR nom LIKE ?";
                 
                //conncxion a la base de données
                 
                include("fspeciales/connecter.php" );
                 
                $req = $connex->prepare($sql);
                $req->execute(array('%'.$query.'%','%'.$query.'%'));
                 
                $count = $req->rowcount();
                if($count >= 1)
                       
                      {
                         echo "$count le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>";
                             
                            while ($data = $req->fetch(PDO::FETCH_OBJ))
                             
                            {
                              echo "#".$data->id.'- Titre: '.$data->prenom;
                            }
                      }
                else
                      {
                        echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>";
                      }
             }
             
            ?>
               <form action=  "<?php echo $_SERVER['PHP_SELF']; ?> " methode= "post ">
               <br>
               <br>
                   <label for=  "query " >Entrez votre recherche :</label>
                   <input type= "search" name= "query" maxlength= "80" size= "80" id= "query"/>
                   <input type= "submit" value= "Rechercher">
               </form>    
           
            </body>
     </html>

Reply

Marsh Posté le 03-11-2015 à 15:19:55   

Reply

Marsh Posté le 03-02-2016 à 21:25:21    

Je suis pas un expert de php mais pourquoi t'essais pas :
 
PDO::query() pour faire ta requete SELECT  
PDOStatement::fetchColumn() qui te donnera le nombre de ligne pour effectuer ta requete ?
 
a la place de : $count = $req->rowcount();
Je sais que rowcount beug avec certaine bdd

Reply

Marsh Posté le 03-02-2016 à 21:58:46    

Oui c'est écrit : http://php.net/manual/fr/pdostatement.rowcount.php

 

Et de toute façon c'est plus simple de faire un $datas = $req->fetch(); puis un count($datas) pour savoir si quelque chose a été trouvé, puis après on parcourt $datas pour afficher les résultats.

 

Mais bon ça devrait quand même soit renvoyer 0 soit une erreur, vu que pas d'erreur je suppose que ça renvoi 0 et donc que le fait qu'il n'y ai pas d'espace entre le echo et le guillemet doit faire buguer. De plus ta variable est toujours à l'intérieur des guillemets à ce moment là.

 

EDIT : en fait ta variable est l'intérieur des guillemets à chaque fois :

 
Code :
  1. echo "$count le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>";


Code :
  1. echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>";


Message édité par MaybeEijOrNot le 03-02-2016 à 22:02:37

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed