Je commence à créer les scripts pour mon moteur de recherche (recherche FULLTEXT). J'ai deux problèmes précis:
1. La requête n'est pas valide: il s'agit d'une erreur de syntaxe mais je n'ai pas réussi (d'après les tutoriaux) à la repérer.
2. Mon moteur de recherche fait appel à trois tables en même temps: une table "groupes", "societes" et "produits".
J'aimerais afficher dans un tableau les résultats. Il aurait deux colonnes: l'un donnant le nom de la "fiche" (ce peut être la fiche d'un groupe, d'une société ou d'un produit) où se trouve le résultat, l'autre affichant la phrase dans laquelle se trouve le mot recherché.
Est-ce que vous pourriez m'orienter pour la condition?
Merci d'avance pour votre aide.
<?php
// Récupération des données du formulaire
$MotRech = $_POST['MotRech'];
?>
<input type="hidden" name="MotRech" value="<? echo $MotRech;?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête
$requete = "SELECT
g.NomGroupe, g.AutreNomGroupe, g.Presentation, g.InfCompl,
s.NomSociete, s.AutreNomSociete, s.Presentation, s.InfCompl,
p.NomProduit, p.Presentation
FROM groupes AS g, societes AS s, produits AS p
WHERE MATCH (g.NomGroupe, g.AutreNomGroupe, g.Presentation, g.InfCompl,
s.NomSociete, s.AutreNomSociete, s.Presentation, s.InfCompl,
p.NomProduit, p.Presentation IN BOOLEAN MODE)
AGAINST ('".$MotRech."')";
$result=mysql_query($requete);
//Si le mot recherché n'est pas présent dans la base, le signaler//
if ($result!=null && trim($result)!="")
{
echo "Il n'y a pas de résultat pour le mot recherché";
}
//Sinon parcourir le tableau//
elseif
{
//Tant qu il y a des résultats, on affiche le nom des fiches et la phrase dans laquelle se trouve le mot//
while ($val=mysql_fetch_array($result))
{
//Si la réponse appartient à une fiche "groupes" alors afficher le nom du groupe
//Sinon tester si elle appartient à une fiches "societes" et afficher le nom de la societe
//Sinon tester si elle appartient à une fiche "produits" alors afficher le nom du produit
}
}
?>
<tr>
<td>
</td>
<td>
</td>
</tr>
<?php
}
}
mysql_close($lien);
?>
Message pour la requête dans PHP-MyAdmin:MySQL said: Documentation
#1064 - Erreur de syntaxe pr�s de 'IN BOOLEAN MODE)
AGAINST ('".$MotRech."') LIMIT 0, 30' � la ligne 8