samt01
Messages postés16Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 octobre 2010
-
8 juil. 2006 à 14:19
cs_fabrice88
Messages postés97Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention 7 août 2015
-
16 sept. 2009 à 20:38
Voilà, je fais une requête avec l'option match mais il y a certains mots qu'elle ne trouve pas comme :
"eos" par exemple
alors que le mot eos existe dans les champs recheché
ou encore quand je tape un chiffre : 350 par exemple
ou alors lorsque le mot recherché comporte un s (photos)
et que je tape photo (donc sans s) ma requête ne trouve pas le mot.
quel est le moyen de résoudre ce problème?
Pourtant ma table est bien décrite en fulltext.
Je ne comprends pas, ça m'a l'air aléatoire. Il y a certains mot que mon meoteur de recherche trouve et d'autres qu'il ne trouve pas.
Est-ce vrai qu'il faut taper plus de 3 caractères?
Quand je mets un espace dans ma recherche, le moteur n'en tiens pas compte.
merci d'avance pour votre aide.
voici la description de ma table :
CREATE TABLE `lldiffusion_produit` (
`id` int(10) unsigned NOT NULL auto_increment,
`marque` varchar(128) NOT NULL default '',
`designation` varchar(128) NOT NULL default '',
`univers` varchar(128) NOT NULL default '',
`categorie` varchar(128) NOT NULL default '',
`sous_categorie` varchar(128) NOT NULL default '',
`resume_court` varchar(150) NOT NULL default '',
`resume_long` text NOT NULL,
`prix_ttc` decimal(10,2) unsigned NOT NULL default '0.00',
`disponibilite` varchar(128) NOT NULL default '',
`garantie` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `categorie` (`categorie`),
FULLTEXT KEY `recherche` (`marque`,`designation`,`univers`,`categorie`,`sous_categorie`,`resume_long`)
) TYPE=MyISAM COMMENT='TABLE DES PRODUITS' AUTO_INCREMENT=1100 ;
et voici ma requête :
$sql = 'SELECT id,marque,designation,categorie,resume_court,prix_ttc,disponibilite FROM
lldiffusion_produit WHERE MATCH
(marque,designation,univers,categorie,sous_categorie,resume_long) AGAINST
("'.$mot.'")';
Une autre info, j'ai easyphp est-ce que ça pourrait venir de là?...
cs_mamedame
Messages postés1Date d'inscriptionsamedi 5 juillet 2003StatutMembreDernière intervention 7 janvier 2009 7 janv. 2009 à 11:11
Salut il vous manque l'expression:IN BOOLEAN MODE dans votre requête sql.
Voila ce que vous devrez mettre:
$sql = 'SELECT id,marque,designation,categorie,resume_court,prix_ttc,disponibilite FROM
lldiffusion_produit WHERE MATCH
(marque,designation,univers,categorie,sous_categorie,resume_long) AGAINST
("'.$mot.'" IN BOOLEAN MODE)';
Essaie avec sa marche.
cs_fabrice88
Messages postés97Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention 7 août 2015 16 sept. 2009 à 20:38
Bonjour,
j'ai exactement le meme probleme et l'ajout de IN BOOLEAN MODE ne change rien
idem donc pour le cas avec photo avec un s et sans le s ....
la fcontion fulltext est soit vraiemnt pas au point ou alors beaucoup d'entre nous sont tres mauvais (bon pour moi je sais c normal mais beaucoup sont dans le meme cas).
autre remarque :
si je fais une recherche avec dans phpmyadmin pour par exemple sur le mot "paysages" : j'ai 15 resultats qui ressortent. maintenant si je passe par mon moteur de recherche avec la meme recherche je n'ai que 14 résultats. J'ai donc un resulat qui se perd quelque par.... (j'ai testé avec d'autres mot c'est pareil, un resultat en moins sur toutes les recherches
mon code est le suivant et je suis en plein dessu donc si il y a un génie dans le coin pour me donner un coup de main:
<?php
include("../admin/connexion-sql.php");
function search()
{
$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];
$resultat=mysql_query("SELECT * FROM IWgalerie WHERE match(type,ref,exemple,alt) against ('$mot' IN BOOLEAN MODE)");
$ligne=mysql_fetch_array($resultat);
while($ligne = mysql_fetch_array($resultat))
{
$ref=$ligne['ref'];
$alt=$ligne['alt'];
$type=$ligne['type'];
echo $ligne['id'].' '.$type.' '.$ref.' '.$alt.'
';
}
}
search();
?>
Photos Vosges : Regardez, respirez, aimez les Vosges
bonjour,