Problème boucle PHP

Résolu
Luciferette Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
Luciferette Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -
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:

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 enregister 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 !
A voir également:

1 réponse

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Bonjour, c'est relativement simple, il suffit d'enregistrer ton mot clef non pas dans une simple variable mais dans un tableau / une liste.

Pour ce faire:
// déclaration
$motTrouve = array();

// Là où tu souhaites ajout ton mot lorsqu'il est trouvé:
$motTrouve[] = "valeur";

// --- Avant d'ajouter ta valeur dans la liste, si tu veux
// ---  vérifier que ton mot n'est pas déjà dedans
if ( ! in_array("valeur",$motTrouve ){
  $motTrouve[] = "valeur";
}

0
Luciferette Messages postés 74 Date d'inscription   Statut Membre Dernière intervention  
 
Han, mais oui ! C'est juste la honte de pas avoir pensé à ça !

C'est là que j'vois que de voir tout le monde en vacances et pas moi me fais vraiment souffrir :)

Merci !!!
0