Moteur de recherche pour son site avec like

Résolu/Fermé
lecoriace Messages postés 101 Date d'inscription mercredi 28 juillet 2010 Statut Membre Dernière intervention 12 janvier 2022 - Modifié par jordane45 le 13/07/2015 à 14:59
lecoriace Messages postés 101 Date d'inscription mercredi 28 juillet 2010 Statut Membre Dernière intervention 12 janvier 2022 - 13 juil. 2015 à 15:33
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.
.

1 réponse

jordane45 Messages postés 36913 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 février 2023 4 478
13 juil. 2015 à 15:12
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 101 Date d'inscription mercredi 28 juillet 2010 Statut Membre Dernière intervention 12 janvier 2022 3
13 juil. 2015 à 15:33
Merci c'est ok
0