Créer Module De Recherche Php Complexe
Besoin d'aide urgent :)
-
naruto-94 Messages postés 865 Date d'inscription Statut Membre Dernière intervention -
naruto-94 Messages postés 865 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un site et je voudrais intégré un système de recherche à travers mes News , je voudrais que lorsque qu'on ne donne pas le nom exacte , ca fasse une recherche est donne les noms des News proche .
Example :
Je recherche : La News sur le film Avatar .
Dans la barre de recherche je marque : avatar news .
Ca m'affiche : Rien trouvé .
Bah je voudrais que ca m'affiche quand même La News sur le film Avatar , donc un système pour retrouvé les news proche du nom donné dans la barre de recherche . Dsl si je m'explique mal mais je sais pas si vous avez compris :s
Merci de m'aider
J'ai un site et je voudrais intégré un système de recherche à travers mes News , je voudrais que lorsque qu'on ne donne pas le nom exacte , ca fasse une recherche est donne les noms des News proche .
Example :
Je recherche : La News sur le film Avatar .
Dans la barre de recherche je marque : avatar news .
Ca m'affiche : Rien trouvé .
Bah je voudrais que ca m'affiche quand même La News sur le film Avatar , donc un système pour retrouvé les news proche du nom donné dans la barre de recherche . Dsl si je m'explique mal mais je sais pas si vous avez compris :s
Merci de m'aider
A voir également:
- Créer Module De Recherche Php Complexe
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un lien pour partager des photos - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Créer un compte gmail - Guide
12 réponses
Et bien tu peux utilise la commande LIKE en sql .
ex : ton champs recherche se nomme "recherche" et tu recherches la news d'avatar
si par exemple le visiteur tape "ava" la requete sql sera
SELECT titre,message FROM les_news WHERE titre LIKE "%ava%" ;
donc ça va recherche toutes les news qui ont dans leur titre ~ava~
http://sql.1keydata.com/fr/sql-like.php
ex : ton champs recherche se nomme "recherche" et tu recherches la news d'avatar
si par exemple le visiteur tape "ava" la requete sql sera
SELECT titre,message FROM les_news WHERE titre LIKE "%ava%" ;
donc ça va recherche toutes les news qui ont dans leur titre ~ava~
http://sql.1keydata.com/fr/sql-like.php
pour commencer fragmente la recherche en plusieurs éléments
//mots recherchés en minuscules
$rec=strtolower($_POST['recherche']);
//entre les mots dans une table
$tableau = explode(" ",$rec);
//compte le nombre de mots
$occurences = count($tableau);
ensuite fait une boucle
for($i=0 ; $i<$occurences; $i++)
{
$requete = "SELECT * FROM table_new
WHERE nom_new LIKE '%" . $tableau[$i] . "%'";
$resultat = mysql_query($requete);
while($ligne = mysql_fetch_array($resultat))
{
echo $ligne[nb];
}
}
cela permet de faire une requete pour chaque mot clé de la recherche donc pour avatar et news
j'espere que ça va pouvoir t'aider
cordialement.
//mots recherchés en minuscules
$rec=strtolower($_POST['recherche']);
//entre les mots dans une table
$tableau = explode(" ",$rec);
//compte le nombre de mots
$occurences = count($tableau);
ensuite fait une boucle
for($i=0 ; $i<$occurences; $i++)
{
$requete = "SELECT * FROM table_new
WHERE nom_new LIKE '%" . $tableau[$i] . "%'";
$resultat = mysql_query($requete);
while($ligne = mysql_fetch_array($resultat))
{
echo $ligne[nb];
}
}
cela permet de faire une requete pour chaque mot clé de la recherche donc pour avatar et news
j'espere que ça va pouvoir t'aider
cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui d'accord mais pour l'afficher après ? Voila mon code pouvez vous me montrer :
<?php $nomdonne= $_POST['news'] ; ?> <span class="titre">News : </span><br /> <?php mysql_connect('localhost','root','********'); mysql_select_db('********'); // lancement de la requete $sql = "SELECT nom FROM news WHERE nom='$nomdonne'" LIKE "%$nomdonne%" ; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on recupere le resultat sous forme d'un tableau $data = mysql_fetch_array($req); // on libère l'espace mémoire alloué pour cette interrogation de la base mysql_free_result ($req); ?> Nom <br> <a href="<?php echo $data['news'] ; ?>">
il faut faire un while vous avez une réponse plus haut dans votre sujet
https://forums.commentcamarche.net/forum/affich-18059434-creer-module-de-recherche-php-complexe#4
sauf que la il a fragmenté la recherche en plusieurs élément donc les prépositions seront recherché .. ce qui peut faire beaucoup de résultat .. utiliser juste le while($ligne = mysql_fetch_array($resultat)) et vous verrez par la suite si la recherche de plusieurs élément vous servira
https://forums.commentcamarche.net/forum/affich-18059434-creer-module-de-recherche-php-complexe#4
sauf que la il a fragmenté la recherche en plusieurs élément donc les prépositions seront recherché .. ce qui peut faire beaucoup de résultat .. utiliser juste le while($ligne = mysql_fetch_array($resultat)) et vous verrez par la suite si la recherche de plusieurs élément vous servira
DSl mais pourriez vous me refaire le code avec ca car je ne suis pas fort en programmation et je ne serais pas faire :s Dsl de vous demandez ca mais Svp pouvez vous me faire le code bien ?? Merci bcp de voter aide
$search = $_POST["recherche"] /* remplacer recherche par le nom du champs de saisie */
$requete = "SELECT titre,msg FROM table_news
WHERE titre LIKE '%" . $search] . "%'";
$resultat = mysql_query($requete);
while($ligne = mysql_fetch_array($resultat))
{
echo $ligne["titre"]; /* Affichage des titres trouver dans la bdd correspondant a la recherche */
}
$requete = "SELECT titre,msg FROM table_news
WHERE titre LIKE '%" . $search] . "%'";
$resultat = mysql_query($requete);
while($ligne = mysql_fetch_array($resultat))
{
echo $ligne["titre"]; /* Affichage des titres trouver dans la bdd correspondant a la recherche */
}
Voila
$search = $_POST["chercher"] ;/* remplacer recherche par le nom du champs de saisie */ $requete = "SELECT nom FROM news WHERE nom LIKE '%" . $search . "%'"; $resultat = mysql_query($requete); while($ligne = mysql_fetch_array($resultat)) { echo $ligne["nom"]; /* Affichage des titres trouver dans la bdd correspondant a la recherche */ } ?>