Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 27/01/2010, 10h15   #1
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut Moteur de recherche

Bonjour voila mon probleme est que je suis entrain de faire un site d'emploi et je voudrais inserer un moteur de recherche.Mon moteur de recherche marche mais a moitié enfaite une personne qui recherche quelq'un par ces competences ne peut le trouver que s'il elle tape les compétences exacte c'est a dire dans l'odre,voila ma requete :

$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where rep='oui'
and titreposte like \"%$titreposte%\"
and competence like \"%$cp%\"";

par exemple dans ma BDD j'ai dans competence (java html php css) si la personne tape java sa marche.Si elle tape java html sa marche.Mais si elle tape java css la sa ne marche plus alors comment je peut faire ???
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 10h38   #2
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

fait un explode de ton $cp et fait tes WHERE SQL sur chaque mot peut etre ou alors dans $cp tu remplaces le caractere espace par % pour qu'il ne cherche pas les mots a la suite...

ce sont des pistes a tester je n'ai jamais fait...
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 10h44   #3
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

euh j'ai pas trop compris désolé peut tu me l'ecrire stp ??
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 10h48   #4
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

$cp = str_replace(" ","%",$cp);

$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where rep='oui'
and titreposte like \"%$titreposte%\"
and competence like \"%$cp%\""

suis pas sur hein... le but est que dans ta valeur $cp tu es un % a la place des espaces pour qu'il ne cherche pas forcément les mots a suivre
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 10h57   #5
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

j'ai essayé sa ne marche pas ??
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h03   #6
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

Autre solution

$cp = explode(" ",$cp);

et tu rajoutes un and sur chaque mot dans ta requete sql...
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h10   #7
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

comment sa je rajoute un and ???
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h26   #8
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

bah regarde ta requete tu en as deja...
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h34   #9
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

sa marche pas,et la il m'affiche plus rien du tout !!??
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h37   #10
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

montre ton code
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h39   #11
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

le voila :

$rs=$_POST['rs'];
$mailu=$_POST['mailuser'];
$sa=$_POST['sa'];
$ip=$_POST['ip'];
$cp=$_POST['cp'];
$ddv=$_POST['ddv'];
$dv=$_POST['dv'];
$tj=$_POST['tj'];
$ville=$_POST['ville'];
$pays=$_POST['pays'];
$categorie=$_POST['categorie'];
$genre=$_POST['genre'];
$dd=$_POST['dd'];
$description=$_POST['description'];
$cp=explode(" ",$cp);

$db=mysql_connect ****;

mysql_select_db ****;

$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where rep='oui'
and titreposte like \"%$ip%\"
and competence like \"%$cp%\"";


$resultat=mysql_query($sql) or die ("erreur lors de l'execution de la requete sql !");
$res = mysql_num_rows($resultat);
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h43   #12
Membre éprouvé
 
Avatar de BenoitDenis
 
Date d'inscription: avril 2005
Localisation: Le Mans
Âge: 24
Messages: 472
Envoyer un message via MSN à BenoitDenis
Par défaut

Dans $cp tu as une liste de mot et tu fait ta requête dessus, il ne te renvoie donc que les résultats qui contiennent ces mots dans cet ordre la.

Il faut donc que tu sépare ton $cp en autant de mot que tu as dedans, et que tu construises une requête sql qui affiche les profils ayant tout ses mots, ou au moins un de ces mots suivant ton algorithme de recherche, dans le champ correspondant...

Voila l'algorithme a suivre, après a toi de chercher un peu au niveau code...
__________________
Le contenu est roi, optimisé il est empereur...

Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent.
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 11h47   #13
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

mais l'algo je l'avait deja compris,il me manque les syntaxe c'est tout ,je connais pas non plus tout les codes c'est pour sa je suis venu sur le site non ??
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/01/2010, 15h28   #14
Membre à l'essai
 
Date d'inscription: décembre 2008
Messages: 41
Par défaut

apres 2 heure de recherche sur Internet j'ai remarqué la methode fulltext qui est tres interessante j'ai essayé mais j'ai pas reussi il me met une erreur.Comment l'utilise t-on ??
goldy91 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 01h01.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.