Bonjour,
J'ai un formulaire de recherche à faire, mais j'ai un problème:
J'ai un champ "mots-clé", dans lequel on peut taper plusieurs mots-clés (logique).
Dans ma BD, j'ai un table intervention, avec un champs "Details", ce qui correspond aux mots-clés. Je compare donc les mots-clés renseignés avec les mots du champ "Details".
Voici mon code:
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 if(!empty($motscle)){ //requête qui récupère tous les détails de la table $reqDet = "SELECT Details FROM intervention"; $resDet = mysql_query($reqDet); $tabMC = preg_split("/[\s,]+/",$motscle); // scinde la phrase grâce aux virgules et espacements print_r($tabMC); $taille2 = count($tabMC); echo "<b>$taille2</b>"; $correspond ="faux"; while($row = mysql_fetch_row($resDet)) { $det = $row[0]; $tabDet = preg_split("/[\s,]+/",$det); $taille = count($tabDet); print_r($tabDet); echo "<b>$taille</b>"; for($i=0;$i <$taille; $i++) // nombre de mots dans le champ "Details" { for($j=0; $j<$taille2;$j++){ // nombre de mots clé renseignés //echo "<h1>$tabDet[$i] == $tabMC[$j]</h1>"; if($tabDet[$i] == $tabMC[$j]){ $motTrouve = $tabDet[$i]; //PROBLEME $correspond = "vrai"; } } } } echo "<h3>$correspond</h3><br/>"; echo "<h2> le mot trouvé est: $motTrouve[$i] </h2><br/>"; }
Le problème, c'est qu'à chaque fois qu'un mot est trouvé, il est enregisté dans la variable $motTrouvé, et qu'il ne renvoie donc que le dernier mot trouvé. Or, je voudrais renvoyer tous les mots trouvés en commun, c'est à dire ne pas remplacer un mot trouvé par le dernier trouvé.
Je ne sais pas si mon problème est clair, mais si quelqu'un peut m'aider...
Merci d'avance ![
Partager