Page 1 sur 1

moteur de recherche et trait d'union

Posté : 15 mai 2010, 10:56
par fersayn247
Bonjour,

J'ai un petit moteur de recherche.
lorsque je recherche trait union:

Au lieu de chercher trait+union, il me retourne: trait-union.

Je n'arrive pas a trouver la solution pour qu'il retourne trait+union.

Quelqu'un a une idée?

Merci de votre aide.

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 11:19
par @rthur
Bonjour,

Il nous faudrait un petit peu de code pour trouver d'où vient ton problème...

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 11:23
par fersay147
Bonjour,
Voici le code de la recherche:
/* la recherche */
$content['mots'] = 'Recherche: '.stripslashes($_GET['recherche']);
$content['resultatRecherche'] = '';
if(isset($_GET['show']) && $_GET['show'] == 'all' && strlen($_GET['recherche']) == 1) {
$sql = "select id, mots,article from materiel_medical where UPPER(LEFT(article,1)) = '".strtoupper(addslashes($_GET['recherche']))."'ORDER by mots ";
} else {
$sql = "select id, mots,article from materiel_medical where UPPER(article) = '".strtoupper(addslashes($_GET['recherche']))."' OR UPPER(article) LIKE '%".strtoupper(addslashes($_GET['recherche']))."' OR UPPER(article) LIKE '".strtoupper(addslashes($_GET['recherche']))."%' OR UPPER(article) LIKE '%".strtoupper(addslashes($_GET['recherche']))."%' ";
}
$resultats = mysql_query($sql);
while($res = mysql_fetch_array($resultats)) {
$content['resultatRecherche'] .= '<h3><a href="site?id='.$res['id'].'">'.stripslashes($res['mots']).'</h3></a><br>'.stripslashes($res['article']).'';
}
if(mysql_num_rows($resultats) == 0) {
$content['resultatRecherche'] = '<li>Pas de résulat. Essayez avec d\'autres mots clés. </li>';
}
or si je cherche un mot ça va...mais si je recherche genre: table ronde; il va me donner table-ronde et pas table+ronde !?

Merci de ton aide

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 11:56
par Nours312
salut :: t'as envisager de passer ton formulaire en POST au lieu de l'envoyer en GET ?
sinon, il faudrait que tu fasse un traitement JS pour que ton champs soit transférer sans espace !...
puis ensuite, tu effectue un traitement inverse (restauration de l'espace) lors de la requête ..

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 13:51
par fersayn 147
J'ai essayé ça ne marche pas:
/* la recherche */
$content['mots'] = 'Recherche: '.stripslashes($_POST['recherche']);
$content['resultatRecherche'] = '';
IF(isset($_GET['show']) && $_GET['show'] == 'all' && strlen($_POST['recherche']) == 1) {
$sql = "select id, mots,article from materiel_medical where UPPER(LEFT(article,1)) = '".strtoupper(addslashes($_POST['recherche']))."'ORDER by mots ";
} else {
$sql = "select id, mots,article from materiel_medical where UPPER(article) = '".strtoupper(addslashes($_POST['recherche']))."' OR UPPER(article) LIKE '%".strtoupper(addslashes($_POST['recherche']))."' OR UPPER(article) LIKE '".strtoupper(addslashes($_POST['recherche']))."%' OR UPPER(article) LIKE '%".strtoupper(addslashes($_POST['recherche']))."%' ";
}
$resultats = mysql_query($sql);
while($res = mysql_fetch_array($resultats)) {
$content['resultatRecherche'] .= '<h3><a href="site?id='.$res['id'].'">'.stripslashes($res['mots']).'</h3></a><br>'.stripslashes($res['article']).'';
}
IF(mysql_num_rows($resultats) == 0) {
$content['resultatRecherche'] = '<li>Pas de résulat. Essayez avec d\'autres mots clés. </li>';
}

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 18:31
par fersayn 147
Personne pour m'aider?

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 19:14
par @rthur
Modération :
Les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 19:15
par Nours312
J'ai essayé ça ne marche pas:
heuu ... c'est quoi qui marche pas ? ton formulaire envoi en post ? sinon, ça peux pas !

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 19:44
par fersayn147
Comment faire pour envoyer le formulaire en POST ?

j'ai fait ca:
/* la recherche */
$content['mots'] = 'Recherche: '.stripslashes($_POST['recherche']);
$content['resultatRecherche'] = '';
IF(isset($_GET['show']) && $_GET['show'] == 'all' && strlen($_POST['recherche']) == 1) {
$sql = "select id, mots,article from materiel_medical where UPPER(LEFT(article,1)) = '".strtoupper(addslashes($_POST['recherche']))."'ORDER by mots ";
} else {
$sql = "select id, mots,article from materiel_medical where UPPER(article) = '".strtoupper(addslashes($_POST['recherche']))."' OR UPPER(article) LIKE '%".strtoupper(addslashes($_POST['recherche']))."' OR UPPER(article) LIKE '".strtoupper(addslashes($_POST['recherche']))."%' OR UPPER(article) LIKE '%".strtoupper(addslashes($_POST['recherche']))."%' ";
}
$resultats = mysql_query($sql);
while($res = mysql_fetch_array($resultats)) {
$content['resultatRecherche'] .= '<h3><a href="site?id='.$res['id'].'">'.stripslashes($res['mots']).'</h3></a><br>'.stripslashes($res['article']).'';
}
IF(mysql_num_rows($resultats) == 0) {
$content['resultatRecherche'] = '<li>Pas de résulat. Essayez avec d\'autres mots clés. </li>';
}
C'est pas ça?
:(

Re: moteur de recherche et trait d'union

Posté : 15 mai 2010, 22:20
par fersayn147
Voici le formulaire associé:

Code : Tout sélectionner

<form action="site" method="post"> <input type="text" name="recherche" value="<?=stripslashes($_POST['recherche']);?>" style="border: 1px solid #9CBAD6; background: white; width: 120px"> &nbsp; <input type="submit" value="Rechercher" style="border: 1px solid #9CBAD6; background: white; width: 80px"> </p> </form> <hr width="649px" color="#AD6FA2" align="left"></hr> <div class="results"> <p><?=$content['resultatRecherche'];?></p> </div>
mais ça ne marche pas non plus.... :(

Re: moteur de recherche et trait d'union

Posté : 16 mai 2010, 02:09
par Nours312
dans la condition :
IF(isset($_GET['show']) && $_GET['show'] == 'all' && strlen($_POST['recherche']) ==  1) {
je ne trouve pas d'où tu récupère $_GET['show'] dans l'action de ton formulaire ...

le formulaire pointe t-il bien au bon endroit ?
<form action="site" method="post">
que contient : $content['mots'] ? et est-ce que ton contenu est différent de ce que tu as entré dans le champs de formulaire ? auquel cas, quelle est cette différence ?

Re: moteur de recherche et trait d'union

Posté : 16 mai 2010, 12:53
par fersayn147
Oui le formulaire pointe au bon endroit.

Je ne comprend pas d'ou ça vient :(