Requete Mysql Moteur de recherche
Posté : 23 févr. 2008, 15:14
Bonjour,
J'ai un annuraire de type pages jaunes. La requete Mysql fonctionne mais est trop précise.
Exemple : Lorsque tape le mot clés "infirmières", il y a 20 réponses.
Avec le mot clé "infirmiers", j'ai 250 réponses.
Comment faire en sorte que lorsque je tape "infirmières", que ca me retourne les 20 réponses mais également les 250 réponses.
En gros, je voudrais que la requete puisse être élargie aux mots qui ressemblent à celui qui a été tapé. (en recherchant "infirmières" que ca me retourne également les réponses correspondant au mot "infirmiers")
Ma requete
Merci bcp de votre aide
@+
Schéma de la table
J'ai un annuraire de type pages jaunes. La requete Mysql fonctionne mais est trop précise.
Exemple : Lorsque tape le mot clés "infirmières", il y a 20 réponses.
Avec le mot clé "infirmiers", j'ai 250 réponses.
Comment faire en sorte que lorsque je tape "infirmières", que ca me retourne les 20 réponses mais également les 250 réponses.
En gros, je voudrais que la requete puisse être élargie aux mots qui ressemblent à celui qui a été tapé. (en recherchant "infirmières" que ca me retourne également les réponses correspondant au mot "infirmiers")
Ma requete
Code : Tout sélectionner
$query = "SELECT listid, cid, listname, description, addr, city, state, country, postcode, phone, website, MATCH (listname) AGAINST ($search) as score ";
$query.="FROM yp_list WHERE MATCH (listname) AGAINST ($search) OR description like $search ORDER BY score DESC ";
Merci bcp de votre aide
@+
Schéma de la table
Code : Tout sélectionner
-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Samedi 23 Février 2008 à 09:11
-- Version du serveur: 5.0.33
-- Version de PHP: 5.2.1
--
-- Base de données: `antillesibase`
--
-- --------------------------------------------------------
--
-- Structure de la table `yp_list`
--
CREATE TABLE `yp_list` (
`listid` int(11) NOT NULL auto_increment,
`cid` int(11) NOT NULL default '0',
`listname` varchar(255) collate latin1_general_ci NOT NULL,
`uname` varchar(60) collate latin1_general_ci NOT NULL,
`description` varchar(255) collate latin1_general_ci NOT NULL,
`addr` varchar(100) collate latin1_general_ci default NULL,
`addr2` varchar(100) collate latin1_general_ci default NULL,
`city` varchar(80) collate latin1_general_ci NOT NULL,
`state` varchar(50) collate latin1_general_ci default NULL,
`postcode` varchar(30) collate latin1_general_ci default NULL,
`country` int(11) NOT NULL default '0',
`phone` varchar(80) collate latin1_general_ci NOT NULL,
`tollfree` varchar(100) collate latin1_general_ci default NULL,
`mobile` varchar(30) collate latin1_general_ci default NULL,
`fax` varchar(30) collate latin1_general_ci default NULL,
`email` varchar(200) collate latin1_general_ci default NULL,
`website` varchar(255) collate latin1_general_ci default NULL,
`addedon` int(11) NOT NULL default '0',
`updatedon` int(11) NOT NULL default '0',
`logo` varchar(40) collate latin1_general_ci default NULL,
PRIMARY KEY (`listid`),
KEY `addedon` (`addedon`),
KEY `addr` (`addr`),
KEY `addr2` (`addr2`),
KEY `cid` (`cid`),
KEY `city` (`city`),
KEY `country` (`country`),
KEY `email` (`email`),
KEY `fax` (`fax`),
KEY `listid` (`listid`),
KEY `logo` (`logo`),
KEY `mobile` (`mobile`),
KEY `phone` (`phone`),
KEY `postcode` (`postcode`),
KEY `state` (`state`),
KEY `tollfree` (`tollfree`),
KEY `uname` (`uname`),
KEY `updatedon` (`updatedon`),
KEY `website` (`website`),
FULLTEXT KEY `listname` (`listname`),
FULLTEXT KEY `description` (`description`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=46862 ;