Moteur de recherche sur une table avec PDO

Eléphanteau du PHP | 30 Messages

03 nov. 2015, 16:25

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 voici mon code:

Code : Tout sélectionner

<!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>

Eléphant du PHP | 385 Messages

03 nov. 2015, 21:12

Bonjour, tu as essayé d'afficher ta requête entière et de l'exécuter en dehors de ton code?

ynx
Mammouth du PHP | 586 Messages

04 nov. 2015, 10:29

Salut,

La méthode rowCount() de PDOStatement ne fonctionne que pour les requête DELETE, INSERT et UPDATE, pas pour SELECT.

Tu peux utiliser à la place une requête SELECT COUNT, regarde le premier exemple de la doc de rowCount() : http://php.net/manual/fr/pdostatement.r ... ample-1051

Bonne journée