Bonsoir à tous,

J'ai suivi et un tout petit peu amélioré le tuto Fonction rechercher, en effet, un petit bug empêchait le surlignage des chaines contenant des guillemets, [b]j'aime les pâtes[/b] par exemple.

Cela corrigé, j'ai voulu approfondir tout ça de manière à ce que à avoir cette structure :

[code]
/*

  1. On fait une première requête pour savoir si un article contient la chaine de caractères entière.
  2. On fait une deuxième requête pour savoir si un article compte TOUS les mots de la chaine de caractères, même séparément.
  3. On fait une dernière requête pour savoir si un article comprend un ou plusieurs mots de la chaine de caractères.

Si 1 est inférieur à 10 alors on exécute 2.
Si 1+2 est inférieur à 10 on exécute 3.
Si 1+2 = 0 on exécute 3 et on informe le visiteur que 1 ET 2 n'ont rien donné.

*/
[/code]

Voilà, je fais don appel à vous pour me mettre sur la voie pour structurer mes requêtes car j'ai bien essayé de multiples solutions mais aucune ne me convient vraiment.

Voici mon code :
[code]
<?php
$q = addslashes($_GET['q']);
$s = explode(" ", $q);
$i=0;
$sql = "SELECT * FROM news";
foreach($s as $mot){
if(strlen($mot)>3){
if($i==0){
$sql.=" WHERE ";
}
else{
$sql.=" AND ";
}
$sql.="contenu LIKE '%$mot%'";
$i++;
}
}
$req = mysql_query($sql);
echo mysql_num_rows($req);
while($d =mysql_fetch_assoc($req)){
$c=$d['contenu'];
echo "<h3>".$d['titre']."</h3>";
echo "<br>";
foreach($s as $mot){
$mot = stripslashes($mot);
$c = str_ireplace($mot,'<span class="orange">'.$mot.'</span>', $c);
}
echo $c;
echo "<br><br>";
}
[/code]

Aucune réponse