Moteur de recherche PHP/SQL

Résolu
sara sama -  
 sara sama -
Bonjour,
J'utilise PHP et myqsl afin de créer mon site.
Je voudrais bien intégrer un moteur de recherche mais cela me rend folle!! je ne saisie vraiment pas où est l'erreur!
Je laisse le code du moteur de recherche:


<?php

try
{

$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=CENTRE CAP SPARTEL', 'root', '', $pdo_options);

$Mot= htmlspecialchars($_POST['recherche']); /* la variable récupérée d'un formulaire */
$result = $bdd->query('SELECT * FROM EQUIPEMENTS WHERE EQUIPEMENT LIKE \'%$Mot%\''); /*envoi de la requête */

// tester si la requête saisie est vide
if (($Mot == "")||($Mot == "%")) {
echo 'Aucune requete saisie! Reessayer';
}
// là ça bloque!!
else
{
while($donne=$result-> fetch());
{
if ($donne != NULL)
{echo ' resulat positif : ' .$donne['EQUIPEMENT']. ' ;' .$donne['PORT'] . ' ; </br>';}
}
}
$result -> closeCursor();
}



catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>


Si quelqu'un pouvait m'aider, il me serait d'un grand secours ^^
Merci
A voir également:

3 réponses

Jay
 
Déjà pour éviter les ambiguïtés, utilise les doubles quote en début et fin de requête comme ça tu pourra utiliser les simples quote sans antislash dans ta requête :

$result = $bdd->query("SELECT * FROM EQUIPEMENTS WHERE EQUIPEMENT LIKE '%$Mot%'; ''); 
2
dariumis Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   63
 
Salut je pense que c'est parce que tu fait ta recherche autour du mot $mot et non de la variable $mot.

$result = $bdd->query("SELECT * FROM EQUIPEMENTS WHERE EQUIPEMENT LIKE '%$Mot%'");


faut faire attention aux apostrophes/guillemet.
0
sara sama
 
Merci Jay ^^
J'ai pu résoudre mon problème ce matin après avoir galéré hier soir .
Alors voici le code:


try 
{

	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
	$bdd = new PDO('mysql:host=localhost;dbname=centre', 'root', '', $pdo_options);
	$Mot= htmlspecialchars($_POST['recherche']);
	$result = $bdd->query('SELECT * FROM EQUIPEMENTS WHERE EQUIPEMENT LIKE "%'.$Mot.'%"');

	
	if (($Mot == "")||($Mot == "%")) 
       {
	echo 'Aucune requete saisie! Reessayer';
	}
    
	else
       {
	$nombre_res= $result-> rowcount(); /*affiche le nombre de colonne du résultat*
	echo ' <h4> Nombre de R&eacutesultats: '. $nombre_res . '. </h4></br>';
	   for($i=0 ; $i <$nombre_res; $i++) /*parcourir tous les résultats trouvé*/
	   { 
	   $donne=$result-> fetch();
	   echo ' <I> - ' . ($i+1) . ';' . $donne['EQUIPEMENT'] . ';' . $donne['PORT'] . '. </br></I>';
	   }
	   

	}

	
	$result -> closeCursor();
	}
	

catch (Exception $e)
{																																																	
  die('Erreur : ' . $e->getMessage());
}
0