Recherche mot clé
Résolu/Fermé
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
-
27 janv. 2010 à 14:32
goldy91 Messages postés 151 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 26 décembre 2014 - 28 janv. 2010 à 14:42
goldy91 Messages postés 151 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 26 décembre 2014 - 28 janv. 2010 à 14:42
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 \"%$ip%\"
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 ?
$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where rep='oui'
and titreposte like \"%$ip%\"
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 ?
A voir également:
- Recherche mot clé
- Clé windows 10 gratuit - Guide
- Clé usb non détectée - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Trousseau mot de passe iphone - Guide
- Voir mot de passe wifi android - Guide
31 réponses
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
27 janv. 2010 à 14:53
27 janv. 2010 à 14:53
Il y a 2 façons :
- la mauvaise (enfin la moins bonne) c'est de casser ta chaine de recherche, d'éliminer les mots inutiles, et de rechercher chaque mot : par exemple pour "java et css" tu fais un tableau "java", "et", "css", tu élimines le "et" non significatif (il te faut une table des mots exclus) et tu recherche "java" puis "css", tu donnes 1 point à chaque mot trouvé et tu tries tes résultats par score. C'est long à faire, il faut gérer les mots exclus, les invariables....
- la meilleure c'est de faire une indexation "fulltext" de ta BDD sur les champs qui t'intéressent et de faire une requête de type SELECT id, MATCH() as score FROM ... AGAINST ... ORDER BY score DESC et là c'est le bonheur !
un p'tit lien dans la doc de MySql pour te donner plus d'infos : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
- la mauvaise (enfin la moins bonne) c'est de casser ta chaine de recherche, d'éliminer les mots inutiles, et de rechercher chaque mot : par exemple pour "java et css" tu fais un tableau "java", "et", "css", tu élimines le "et" non significatif (il te faut une table des mots exclus) et tu recherche "java" puis "css", tu donnes 1 point à chaque mot trouvé et tu tries tes résultats par score. C'est long à faire, il faut gérer les mots exclus, les invariables....
- la meilleure c'est de faire une indexation "fulltext" de ta BDD sur les champs qui t'intéressent et de faire une requête de type SELECT id, MATCH() as score FROM ... AGAINST ... ORDER BY score DESC et là c'est le bonheur !
un p'tit lien dans la doc de MySql pour te donner plus d'infos : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
27 janv. 2010 à 15:24
27 janv. 2010 à 15:24
comment tu fait dans mon cas j'ai essayé mais j'ai pas reussi voila ce que j'ai fait :
$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where match (competence) against ('.$cp.');
et dans ma bdd j'ai mis competence en fulltext ...
$sql="select identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
from publication
where match (competence) against ('.$cp.');
et dans ma bdd j'ai mis competence en fulltext ...
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
27 janv. 2010 à 15:48
27 janv. 2010 à 15:48
SELECT identifiant, titreposte, MATCH (competence) AGAINST ('.$cp.'), competence , villep, datedebutvalidite, dureevalidite, datecreation
FROM publication
et si tu veux un tri par correspondance décroissante, ça sera :
SELECT identifiant, titreposte, MATCH (competence) AGAINST ('.$cp.') as score, competence , villep, datedebutvalidite, dureevalidite, datecreation
FROM publication
ORDER BY score DESC
FROM publication
et si tu veux un tri par correspondance décroissante, ça sera :
SELECT identifiant, titreposte, MATCH (competence) AGAINST ('.$cp.') as score, competence , villep, datedebutvalidite, dureevalidite, datecreation
FROM publication
ORDER BY score DESC
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
27 janv. 2010 à 16:14
27 janv. 2010 à 16:14
oui sa marche j'avais oublié de fermer les guillemets voila la soluce :
$sql="SELECT identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
FROM publication
WHERE MATCH (competence) AGAINST ('$cp')";
$sql="SELECT identifiant,titreposte,competence,villep,datedebutvalidite,dureevalidite,datecreation
FROM publication
WHERE MATCH (competence) AGAINST ('$cp')";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
27 janv. 2010 à 16:18
27 janv. 2010 à 16:18
Ok, bon dév'
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
27 janv. 2010 à 22:00
27 janv. 2010 à 22:00
et une dernier chose j'ai un probleme avec ma variable sessions enfaite j''utilise la variable session pour faire circuler mes informations mais au bout de la 2eme page sa ne marche plus, sa se présente comme sa :
1er page :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
pour versifier si l'id a bien circuler je fait :
echo 'salut '.$_SESSION['id'].'';
et la sa marche bien mais sur la page suivante quand je le fait sa marche pas
2eme page :
session_start();
$id=$_SESSION['id'];
echo ' salut '.$id.' ';
pourtant aucune erreur apparait il y a juste écrit salut
donc d'où peut venir l'erreur ???
1er page :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
pour versifier si l'id a bien circuler je fait :
echo 'salut '.$_SESSION['id'].'';
et la sa marche bien mais sur la page suivante quand je le fait sa marche pas
2eme page :
session_start();
$id=$_SESSION['id'];
echo ' salut '.$id.' ';
pourtant aucune erreur apparait il y a juste écrit salut
donc d'où peut venir l'erreur ???
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 09:45
28 janv. 2010 à 09:45
Je ne suis pas super fort en variables de session, j'aime bien la méthode GET ou les cookies mais je ne vois pas d'erreur flagrante ici
quand tu fais un "echo" il n'y a pas besoin de placer un '' après ta variable.
Pour le debug essaie ça en page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo 'salut '.$_SESSION['id'].' : '.session_id();
et en page 2 :
session_start();
echo 'salut '.$_SESSION['id'].' : '.session_id();
quand tu fais un "echo" il n'y a pas besoin de placer un '' après ta variable.
Pour le debug essaie ça en page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo 'salut '.$_SESSION['id'].' : '.session_id();
et en page 2 :
session_start();
echo 'salut '.$_SESSION['id'].' : '.session_id();
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 10:42
28 janv. 2010 à 10:42
euh sa me fait un truc bizarre ,sur la 1er page sa me fait :
salut 43:307398701c1a9f177c029eeb9f464203
43 étant l'id que j'ai cliqué
et sur la page 2 :
salut :be6d17f8d97cd1abec2c7b36045f1cf2
c'est quoi le probleme ??
salut 43:307398701c1a9f177c029eeb9f464203
43 étant l'id que j'ai cliqué
et sur la page 2 :
salut :be6d17f8d97cd1abec2c7b36045f1cf2
c'est quoi le probleme ??
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 11:17
28 janv. 2010 à 11:17
session_id() te retourne l'identifiant de la session en cours, normalement les 2 valeurs sont les mêmes, là tu changes de session entre page1 et page2, sur page2 essaie :
echo 'avant-salut '.$_SESSION['id'].' : '.session_id();
session_start();
echo 'apres-salut '.$_SESSION['id'].' : '.session_id();
pour voir si ce n'est pas ton session_start() qui pose problème... selon les configurations du serveur, il y a un paramètre session.autostart ou quelque chose comme ça qui fait qu'il ne faut pas démarrer de sessions manuellement
echo 'avant-salut '.$_SESSION['id'].' : '.session_id();
session_start();
echo 'apres-salut '.$_SESSION['id'].' : '.session_id();
pour voir si ce n'est pas ton session_start() qui pose problème... selon les configurations du serveur, il y a un paramètre session.autostart ou quelque chose comme ça qui fait qu'il ne faut pas démarrer de sessions manuellement
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 11:29
28 janv. 2010 à 11:29
voila ce que sa fait sur la page 2 :
avant-salut :apres-salut :7445638469ba30c936390dd9b484bcf0
avant-salut :apres-salut :7445638469ba30c936390dd9b484bcf0
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 11:39
28 janv. 2010 à 11:39
donc ta session n'est pas démarrée automatiquement....
et si tu demandes :
en page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo 'salut '.$_SESSION['id'].' : '.SID;
et en page 2 :
if(isset($_COOKIE["PHPSESSID"]))
{
session_start();
echo 'salut '.$_SESSION['id'].' : '.SID;
}
else
{
echo 'pas de session active';
}
Si ça ne donne toujours rien de concluant, lit https://www.php.net/manual/fr/session.idpassing.php ... peut-être que tu n'utilises pas de cookie pour passer ton identifiant de session
Cela dit si tu utilises des cookies pour passer ton identifiant de session pourquoi tu n'utiliserais pas de cookies pour passer ta valeur ? setcookie('variable', 'valeur', time()+3600) pour créer un cookie valable une heure
et si tu demandes :
en page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo 'salut '.$_SESSION['id'].' : '.SID;
et en page 2 :
if(isset($_COOKIE["PHPSESSID"]))
{
session_start();
echo 'salut '.$_SESSION['id'].' : '.SID;
}
else
{
echo 'pas de session active';
}
Si ça ne donne toujours rien de concluant, lit https://www.php.net/manual/fr/session.idpassing.php ... peut-être que tu n'utilises pas de cookie pour passer ton identifiant de session
Cela dit si tu utilises des cookies pour passer ton identifiant de session pourquoi tu n'utiliserais pas de cookies pour passer ta valeur ? setcookie('variable', 'valeur', time()+3600) pour créer un cookie valable une heure
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 11:49
28 janv. 2010 à 11:49
non toujours pas voila ce que sa donne en page 1:
salut 43:PHPSESSID=71e9b540b04c2a68adfc1ee348877b52
et en page 2 :
pas de session active
salut 43:PHPSESSID=71e9b540b04c2a68adfc1ee348877b52
et en page 2 :
pas de session active
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 11:55
28 janv. 2010 à 11:55
c'est donc que ton cookie d'identifiant de session n'arrive pas à page2
- soit tu n'utilises pas les cookies pour identifier les sessions,
- soit ton navigateur n'accepte pas les cookies
tu peux passer ton id de session en paramètre $_GET à page 2 en appelant dans page1
'page2.php?'.SID
pour éviter ça, je cite "PHP est capable de faire cela de manière transparente, lorsqu'il est compilé avec l'option --enable-trans-sid. Si vous activez cette option et que l'option d'exécution session.use_trans_sid est activée, les URLs relatives seront modifiées pour contenir l'identifiant de session automatiquement. " il suffit donc d'activer cette option pour que les appels à 'pageXXX.php' soient automatiquement transformés en 'pageXXX.php?session_name=sd23154wc654ze897c'
- soit tu n'utilises pas les cookies pour identifier les sessions,
- soit ton navigateur n'accepte pas les cookies
tu peux passer ton id de session en paramètre $_GET à page 2 en appelant dans page1
'page2.php?'.SID
pour éviter ça, je cite "PHP est capable de faire cela de manière transparente, lorsqu'il est compilé avec l'option --enable-trans-sid. Si vous activez cette option et que l'option d'exécution session.use_trans_sid est activée, les URLs relatives seront modifiées pour contenir l'identifiant de session automatiquement. " il suffit donc d'activer cette option pour que les appels à 'pageXXX.php' soient automatiquement transformés en 'pageXXX.php?session_name=sd23154wc654ze897c'
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 12:05
28 janv. 2010 à 12:05
euh j'ai pas trop compris j'ecrit quoi sur la page 1 et sur la page 2 ???
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 12:12
28 janv. 2010 à 12:12
dans page2, tu reviens aux sources :
session_start();
$id=$_SESSION['id'];
echo ' salut '.$id.' ';
et dans page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo '<a href="page2.php?'.SID.'">page 2</a>';
normalement l'identifiant de session se transmet dans l'url du lien hypertexte. Si ça marche comme ça c'est un bon début. Tu devras alors utiliser ton SID dans tous tes liens. Pour éviter d'avoir à le transmettre à la main, tu peux paramétrer ton serveur avec la directive session.use_trans_sid pour que le SID soit transmis automatiquement
session_start();
$id=$_SESSION['id'];
echo ' salut '.$id.' ';
et dans page 1 :
session_start();
$id=$_GET['id'];
$_SESSION['id']=$id;
echo '<a href="page2.php?'.SID.'">page 2</a>';
normalement l'identifiant de session se transmet dans l'url du lien hypertexte. Si ça marche comme ça c'est un bon début. Tu devras alors utiliser ton SID dans tous tes liens. Pour éviter d'avoir à le transmettre à la main, tu peux paramétrer ton serveur avec la directive session.use_trans_sid pour que le SID soit transmis automatiquement
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 13:08
28 janv. 2010 à 13:08
oui sa marche !!! l'id apparait bien dans la 2eme page
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 13:13
28 janv. 2010 à 13:13
Weepeeeeeeee !!!
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 13:23
28 janv. 2010 à 13:23
mais c'est pas bon car ici l'utilisateur doit cliqué sur page 2 et moi je veut qu'il clic sur envoyer ???
zcrew
Messages postés
231
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
26 février 2010
25
28 janv. 2010 à 13:25
28 janv. 2010 à 13:25
C'est juste le texte du lien qui te bloque ?
echo '<a href="page2.php?'.SID.'">envoyer</a>';
echo '<a href="page2.php?'.SID.'">envoyer</a>';
goldy91
Messages postés
151
Date d'inscription
mardi 1 avril 2008
Statut
Membre
Dernière intervention
26 décembre 2014
19
28 janv. 2010 à 13:29
28 janv. 2010 à 13:29
non c'est pas sa enfaite voila comment sa se presente :
<form method="post" action="page2.php">
<input type="image" src="button6.jpeg"/>
voila donc des qu'il clic sur l'image il execute la page 2
<form method="post" action="page2.php">
<input type="image" src="button6.jpeg"/>
voila donc des qu'il clic sur l'image il execute la page 2