Moteur de recherche PHP/SQL

Résolu/Fermé
sara sama - 13 avril 2012 à 02:55
 sara sama - 13 avril 2012 à 13:48
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

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 mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
13 avril 2012 à 10:21
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
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