Systeme de recherche dans un fichier avec PHP

Résolu/Fermé
kaham Messages postés 177 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 mars 2013 - 11 sept. 2008 à 00:26
kaham Messages postés 177 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 mars 2013 - 14 sept. 2008 à 01:02
Bonjour,

J'ai un fichier stock.khm (format de test pour m'amuser) disposé comme suite :
Nom du site;Adresse du site;1K1S2Y3O
Nom du site;Adresse du site;8G1E5H0I
Nom du site;Adresse du site;5J0L1J3O
test;Adresse du site;5J0L1J3O
etc.

j'utilise ceci comme script PHP pour effectuer une recherche dans le fichier:
$mot_cle = $_POST['mot_cle'];
    $id_file = fopen('stock.khm', 'r');  
    
    while($tab=fgetcsv($id_file,500,";")){
      if($tab[0] == $mot_cle){
        echo "<center><br><table>";
        echo "<tr><td><a href=\"$tab[1]\">$tab[0]</a></td><td><font color=\"#990000\">$tab[2]</font></td></tr>";
        echo"</table></center>";
        
      }
    }
    
    fclose($id_file);

Ce qui pour le moment fonctionne très bien !
Voici mon ma question :
quand je tape comme mot clé "test" cela m'affiche sous forme de tableau : test / 5J0L1J3O
mais si je tappe "tes" (une partie du mot) il ne trouve aucun résultat.

Comment puis-je donc faire pour qu'il trouve un résulta en utilisant une partie du mot ?
A voir également:

5 réponses

Bonjour

Tu fais un test d'égalité if($tab[0] == $mot_cle). Donc pour l'instant, normal qu'il ne trouve le mot que s'il y a une correspondance exacte.
Tu peux utilser la fonction strpos pour détecter la présence de $tab[0] à l'intérieur de $motcle. Voir https://www.php.net/manual/fr/function.strpos.php Tu y trouveras aussi de nombreuses fonctions utiles pour le cas ou on a tapé en majuscules au lieu de minuscules, etc...
0
Il y a un point en trop à la fin du lien. Enlève-le.
0
kaham Messages postés 177 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 mars 2013 5
11 sept. 2008 à 13:13
La page ou m'envoie ton lien a pour le moment a un problème (error:404 not found).

Je regarderais quand elle sera de nouveau accessible. Merci de l'aide :)
-1
kaham Messages postés 177 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 mars 2013 5
11 sept. 2008 à 20:53
ok merci^^
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaham Messages postés 177 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 mars 2013 5
14 sept. 2008 à 01:02
Bonjour,

Après avoir réglés quelques problèmes avec mon pc j'ai enfin pus tester cette fonction. Mais je n'arrive pas a avoir le résultat que je soihaite. Voici mon code PHP :
//Recherche de site dans le fichier
  if(isset($_POST['recherche'])){
    $mot_cle = $_POST['mot_cle'];
    $id_file = fopen('stock.khm', 'r');  
    
    while($tab=fgetcsv($id_file,500,";")){
      if(strpos($tab[0] , $mot_cle){
        echo "<center><br><table>";
        echo "<tr><td><a href=\"$tab[1]\">$tab[0]</a></td><td><font color=\"#990000\">$tab[2]</font></td></tr>";
        echo"</table></center>";
        
      }
    }
    
    fclose($id_file);
  }

Quand je cherche un par exemple test dans mon fichier je tappe simplement "t" il ne le trouve pas.
Si je tape "e" il le trouve => "s" il le trouve => "tes" il ne le trouve pas et "test" non plus :s

Ou est mon erreur ?
-1