Bonsoir tous le monde,
Comment allez vous
C'est la premiere fois que je postule sur ce forum que j'ai beaucoup entendu parlé ! surtout en bien ! et depuis déjà environs 2 jours et demi.
J'ai essayé pleins d'option et je suis encore et toujours au point de depart. je fais que d'essayer les methodes qu'on peut utiliser généralement mais la ca dépasse carrement mon niveau... donc j'abandonne. je peux plus chercher, ca me deprime.
Pour revenir à mon probleme. je vais essayer d'etre le plus clair possible.
Des phrases programmé renvoi a une reponse .. voila le but du script. (formulaire php + mysql )
Je cherche un petit code, une sorte de source qui determine par rapport a une base de donnée le fait que
depuis un champ de formulaire on puisse taper une phrase.
chaque mot present dans cette phrase est appelé mot clef.
Deux choses à conditionner.
Déjà il faut savoir que il doit afficher un seul et unique resultat
celui le plus proche.
ensuite verifié l'ordre des mots qui ont été tapé.
tjs vers celui le plus proche.
Dans mon formulaire, la phrase que je tape est :
Mon chocolat n'a pas de gout.
// J'execute la requete mysql. 2 mots chocolats est presents dans la base.
soit : le chocolat de jean est très bon mais pas assez sucré
et : dans le chocolat il y a du sucre, ca lui donne plus de gout.
Ma phrase : Mon chocolat n'a pas de gout
Chocolat (2 eme position) dans la premiere phrase
chocolat (3 eme position dans la deuxieme phrase
pas = present dans la premiere phrase est ce situe 9 eme position
Pas = non present dans la deuxieme phrase
Gout = present dans la deuxieme phrase mais pas dans la premiere.
donc 2 mots present dans la Deuxime phrase
et 2 mots present dans la troisieme phrase.
Gout est le plus long mot que pas ! donc on ignore la premiere phrase
et on donne le resultat a la deuxieme soit
'''''dans le chocolat il y a du sucre, ca lui donne plus de gout.'''''
On peut éventuellement rajouté une n'autre condition pour encore plus sofistiqué le truc
mais je ne vois pas quest ce que l'on pourrait faire d'autre...
---------------------
Champ de la table mysql : question
champ de la table mysql : resultat --> fetch_array($result); $contenu["resultat"];
------------------------
PS: jai tous fais avec les LIKE mais c'est pas une des solutions qui pourrait etre adapté a ma situation , le fulltext depasse ma connaissance ! et Levenshtein, jai regardé la doc a mort toute la journée. je suis perdu je sais meme pas comment faire...
FRANCHEMENT JE REMERCIE DAVANCE TOUTES LES PERSONNES QUI POURRAIT MAIDER A TROUVER DES SOLUTIONS LOGIQUE CONCRETE ET SERIEUSE PAR RAPPORT A MON PROBLEME
merci encore a tous davance
je vous souhaite une tres bonne journée
cordialement Milka (TENDREMENT CHOCOLAT)
--------------------
Eventuellement javais commencé aussi un code comme celui la
Le gros probleme c'est que il fait aucune différence entre une phrase et une autre. il en ressort tous les mots clefs presents que jai tapé dans mon formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <? include("config.php"); if(empty($_POST["submit"])){ } else{ $array_ask = explode(' ',$_POST['question']); $first = true; $req = ''; foreach ($array_ask as $key => $value) { if ($first) { $first = false; $req .= "`question` LIKE '%".$value."%'"; } else { $req .= " OR `question` LIKE '%".$value."%'"; } } $req_results = mysql_query("SELECT * FROM `faq` WHERE ".$req.""); if ( @mysql_num_rows($req_results) == 0) { echo 'aucun résultat'; } elseif(@mysql_num_rows($req_results)>1){ echo 'Désolé mais je ne comprend pas votre question, pouvez vous etre plus precis'; } elseif(@mysql_num_rows($req_results)==1){ $rest = mysql_fetch_array($req_results); echo $rest['resultat']; } else{ echo "erreur"; } } ?>
Le probleme avec mon script en haut c'est que il ignore pas le fait que dans un enregistrement par exemple :
Je vais a la piscine
1 1 1 1 1
Je vais a la mer
1 1 1 1 0
le "je" le "vais" le "a" le "la"
il l'ai garde pour lui, je veux dire il l'ai ignore pas.
pourtant jai bien dis dans mon formulaire. je vais a la piscine
donc il doit prendre le maximum de mot clefs pour retourner a un resultat unique.
piscine est present dans mon formulaire !!!!! il doit ignorer l'enregistrement ou il y a la phrase je vais a la mer..
donc le script en haut n'est pas complet et donc les like me sert pas a grand chose ! faut trouver une autre solution mais meme si je veux utiliser d'autres moyens ! perso ca depasse mes competence ! et jai reellement besoin d'un coup de pouce
merci encore a tous !
Partager