Moteur de recherche pour son site avec like

Résolu
lecoriace Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   -  
lecoriace Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai créé un formulaire de recherche php. j'aimerai qu'il cherche tous les mots clés dans toutes les colonnes de ma base. voici la requête que j'ai faite mais j'ai l'impression que ça ne marche pas :
<? php $sql= "SELECT*FROM info WHERE noms LIKE ? OR prenom LIKE ?"
// Connexion à la base de données
include("pages/connect_db.php");

 $req = $pdo->prepare($sql);
 $req->execute(array('%'.$query.'%', '%'.$query.'%'));
 
 $count = $req->rowCount();
 
 if($count >=1){
 
 echo "oui";
 
 } else{
 
 echo "non";

?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pour voir les éventuelles erreurs ... ajoute un bloc try/catch.
Ensuite... attention aux espaces dans ta requête .. et aux point-virgules en fin de ligne....

et plutot que d'utiliser les "?" .. je préfère nommer les variables dans les requête préparées...


<?php 
include("pages/connect_db.php");

$sql= "SELECT * FROM info WHERE noms LIKE :nom OR prenom LIKE :prenom";
$params = array( ":nom" =>'%'.$query.'%'
               , ":prenom" =>'%'.$query.'%');
// Connexion à la base de données

 try{
    $req = $pdo->prepare($sql);
    $req->execute($params);
    //On stocke le résultat de la requête dans un ARRAY
    $array_result = $req->fetchall();
 }catch(Exception $e) {
    echo "<br>ERREUR ! ".$e->getMessage()."<br>";
    echo "<br>params : <br>";
    print_r($params);
  }

 $count =$array_result  ? count($array_result) : 0;
 
 if($count >0){
   echo "oui";
 } else {
   echo "non";
 }

//Affichage des resultats (pour les tests ^^ )
print_r($array_result);


1
lecoriace Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci c'est ok
0