magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005
-
4 févr. 2005 à 13:46
magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005
-
6 févr. 2005 à 18:05
Bonjour, je cherche a faire un moteur de recherche qui me permetterai de cherchait dans ma table membres et d'afficher les resultats sur une est mm page :
par exemple je tape dans le moteur de recherche JIMMY,
et la il m'affiche tout les resultats sur la page
a savoir que j'ai plusieurs champs : nom, prenom, speudo, region
je voudrait que le moteur recherche dans ces quatres champs merci
nico1214
Messages postés37Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention 6 mai 2009 4 févr. 2005 à 14:44
Je suis pas sûr qu'il va te tomber tout cuit dans la bouche ton moteur de recherche...
Sinon oui le plus dur c'est pas la BDD mais la gestion des mots entrés et pour ce faire, comme l'a très justement remarqué malalam, il faut utiliser les expressions régulières.
magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005 4 févr. 2005 à 16:43
je me doute bien qu'il ne va pas me tomber tout cru dans le bec lol,
j'y travaille en ce moment pour essayer dit arriver, j'aurai juste bien voulu un exemple concret pour pouvoir réaliser le mien et a mon gout,
J'ai déja mon formulaire de près :
<form method= "post" action="resultat.php">
Recherche :
</form>
maintenant je travaille sur le résultat :
<?php
// Parametres de connexion à la base de données
include "includes/functions.inc.php";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
// la requette
$sql = "SELECT pseudo,nom,prenom,region FROM table_membres WHERE pseudo AND nom AND prenom AND region LIKE '%$recherche%'";
$result = mysql_query($sql);
while($data = mysql_fetch_array($result))
{
echo "$data['pseudo']
";
echo "$data['nom']
";
echo "$data['prenom']
";
echo "$data['region']
";
}
}
?>
voila je cherche encore
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 4 févr. 2005 à 17:19
re,
ben il faut vraiment que tu traites la valeur saisie dans ton
formulaire avec des expressions regulieres si tu veux un moteur un
minimum performant. Cela va te permettre par exemple, si quelqu'un tape
"Robart", de trouver "Robert", avec un peu de chance ;-)
La tu commances doucement, mais surement, je pense que tu es sur la bonne voie.
Je n'ai pas d'exemple sous la main desole, mais ca doit se trouver sur ce site je pense.
Vous n’avez pas trouvé la réponse que vous recherchez ?
nico1214
Messages postés37Date d'inscriptionmardi 17 juin 2003StatutMembreDernière intervention 6 mai 2009 4 févr. 2005 à 17:28
Ben déjà les champs "Nom" "Prénom" "Région" ne peuvent tous être égaux à $recherche.
Il faut mettre OR à la place des AND dans ta requête.
Ensuite, tu peux par exemple supprimer les mots inférieurs à trois lettres du champ de recherche (imagine : quelqu'un tape une seule lettre, le "e" par exemple, le nombre de résultats que tu vas avoir !!!)
$tab_requete[0][0]='SELECT
titre,url,MATCH(texte) AGAINST(\''.$recherche.'\') AS pertinence FROM
article WHERE MATCH(texte) AGAINST(\''.$recherche.'\'';
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 5 févr. 2005 à 10:35
Oui oui, je dis pas que les index fulltext de mysql ne sont pas performants. Disons juste que les regexp permettent un grand controle sur les donnees entrees par l'utilisateur. Mais effectivement, c'est tres faisable en utilisant uniquement du sql, comme pour ton moteur.
magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005 5 févr. 2005 à 18:14
Sa y est je viens de reussir mais bon maintenant va falloir que je l'ameliore comme dit nico1214, bon je vous balancerai le code surment demain car la il faut que j'aille travailler encore merci @ tous...
magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005 6 févr. 2005 à 17:52
Voila le code maintenant ma faudrait limiter a la saisie du mot a rechercher à trois caracteres minimum :
$recherche = $_POST["recherche"];
// la requette
$requete = "SELECT * FROM table_membres WHERE id LIKE '%$recherche%'";
$result = mysql_query($requete);
while($enreg = mysql_fetch_array($result))
{
echo "".$enreg['nom].",
----
,
----
".$enreg['region']."
";
}
voila maintenant va falloir que je lameliore merci @ tous
magicjim
Messages postés116Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention22 septembre 2005 6 févr. 2005 à 18:05
salut, je ne t'est pas demander de me donner la reponse, j'informait juste toute les personnes qui m'ont aider mais merci, c'est sympa de ta part bon allez @++