Pour accélerer un moteur de recherche (mysql+php) je crée une table dans laquelle j'enregistre une version "optimisée" des articles. Je supprime tous les accents, les mots de 1 caractère et souhaite supprimer également tous les mots contenu dans une table mysql (t_opti qui contient deux champs, un champ index(auto-incrément) et un champ mot).
pour supprimer les mots de 1 caractère j'utilise la syntaxe suivante. ($mots représente le texte qui sera entré pour l'article)
Je souhaite ensuite vérifier la présence des 'mots interdits' enregistrés dans ma table t_opti dans le tableau $tab2[] et supprimer ces entrées du tableau si elles s'y trouvent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $tab2=explode(' ',$mots); $nbt2=count($tab2); $tab4=Array(); // supprime les mots de 1 et 2 caractères for ($i=0;$i<$nbt2;$i++){$ju=strlen($tab2[$i]);array_push($tab4, $ju);} $ar=count($tab4); $ot=count($tab2); for ($i=0;$i<$ot;$i++) { if ($tab4[$i]==1) {unset($tab2[$i]); }}
Je fais donc :
et ici je ne sais plus faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $req=mysql_query("select mot from t_opti",$lien); while ($t_opti=mysql_fetch_object($req)) {$mottrouve=$t_opti->mot;// là je récupère chacune des valeurs du champ mot
Il faut que je teste si $mottrouve est égale à l'une des valeurs de $tab2, si c'est le cas alors je supprime l'entrée correspondante dans le tableau.
En français c'est beaucoup plus simple....
Merci de votre aide![]()
Partager