Recherche avec WHERE MATCH() ?

Invité
Invité n'ayant pas de compte PHPfrance

08 mai 2010, 18:32

Salut.
Je fais un moteur de recherche en php avec la fonction MATCh().
Je souhaiterais retourner le champs ou à été trouvé le mot, voici ma requette :

Code : Tout sélectionner

$sql = "SELECT * FROM articles WHERE MATCH (titre,article,para1,para2,para3,para4,para5,para6,para7,para8,para9,para10,soustitre) AGAINST ('$recherche')"; $req = mysql_query($sql); while ($data = mysql_fetch_array($req)) { echo "<a href='article.php?article=".$data["ref"]."'></a>" ; }
ça me retourne le champ reference de la ligne ou a été trouvé le mot mais
je voudrais connaitre le champ ou se trouve le mot et non pas la ligne complete : titre, article ou para1 ? pouvez m'aider , merci.

Par example si le mot est trouvé dans le champ "para1" il faut qu'il me retourne "para1", mais comment ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 mai 2010, 10:33

Bonjour,

A ma connaissance ce n'est pas possible directement en MySQL avec la fonction MATCH().
Mais du moment que tu sais quels sont les enregistrements correspondant à ta requête avec la fonction match, tu peux rechercher en PHP dans quels champs en particulier tes mots apparaissent...
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

09 mai 2010, 23:31

oui j'ai ajouté des rquettes LIKE a l'interieur l'affichge de ma requette match() pour connaitre le champ, un peu lourd certainement mais ça marche.
J'aimerais maintenant afficher un certain nombre de caracteres en resultat et non pas tout l'aricle, savez vous comment faire ?


example : je trouve le mot "ecole" dans un article, je voudrais que le resultat affiche :

... bla bla ecole blal bla ...

Et non pas tout l'article , savez vous si c'est possible ?

ViPHP
ViPHP | 5462 Messages

10 mai 2010, 13:04

montre ce que t'as fait