|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
amazigh25 WRInaute passionné

Inscrit le: 04 Juin 2005 Messages: 982 Localisation: à 15 km de l'europe.
|
Posté le : Mar Mai 16, 2006 0:15 Sujet du message: Mini moteur en PHP |
|
|
Bonsoir,
Je vais essayer de vous expliquer mon problème.
J'ai une table dont la structure est la suivante :
| Code: |
CREATE TABLE `cartouches` (
`id` int(11) NOT NULL auto_increment,
`imprimante` varchar(255) NOT NULL default '',
`reference` varchar(255) NOT NULL default '',
`marque` varchar(255) NOT NULL default '',
`fournisseur` varchar(255) NOT NULL default '',
`urlfournisseur` varchar(255) NOT NULL default '',
`description` text NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 ; |
Je voudrais créer un mini moteur de recherche, qui cherche dans toute la table ou bien dans certains champs.
Qu'es ce que vous me conseillez ?
Merci d'avance
Ps: J'ai pas mal fouillé sur wri mais j'ai pas bien compris comme ça marchait . |
|
| |
|
 |
kazhar WRInaute accro

Inscrit le: 09 Jan 2004 Messages: 6042 Localisation: Somewhere only I know
|
Posté le : Mar Mai 16, 2006 0:33 Sujet du message: Mini moteur en PHP |
|
|
| Code: |
$sql = 'SELECT `id`
FROM `cartouches`
WHERE `imprimante` LIKE "%'.$q.'%"
OR `description` LIKE "%'.$q.'%";'; |
Comme cela par exemple.
Après, tu n'a plus qu'à adapter les champs selon tes choix. |
|
| |
|
 |
amazigh25 WRInaute passionné

Inscrit le: 04 Juin 2005 Messages: 982 Localisation: à 15 km de l'europe.
|
Posté le : Mar Mai 16, 2006 1:01 Sujet du message: Mini moteur en PHP |
|
|
Bonsoir
Merci pour ta réponse.
$q est le mot recherché ?
Pour l'affichage des résultats je fais une boucle comme pour n'importe quelle requette ?
Merci |
|
| |
|
 |
Zim' WRInaute passionné

Inscrit le: 27 Avr 2006 Messages: 804 Localisation: Euh... chez moi nulle part pour l'instant :-(
|
Posté le : Mar Mai 16, 2006 1:53 Sujet du message: Mini moteur en PHP |
|
|
oui, pour l'affichage il suffit de mettre le résultat dans un tableau et de boucler sur chacun des éléments, comme pour une requete avec des "WHERE"s
toutefois, je te suggères quelques optimisation, tel que des champs enum quand cela est possible, est des champs char(x) quand tu connais assez précisément la taille de ton champ... |
|
| |
|
 |
spout WRInaute passionné

Inscrit le: 14 Mai 2003 Messages: 666 Localisation: Manhay (Belgique)
|
|
| |
|
 |
spidetra WRInaute accro

Inscrit le: 07 Juil 2003 Messages: 1499 Localisation: Toulouse
|
Posté le : Mar Mai 16, 2006 8:49 Sujet du message: Mini moteur en PHP |
|
|
laisse tomber les LIKE %qqchose%, en terme de performance tu risques d'avoir des soucis.
suis le conseil de spout et va faire un petit tour du côté des index fulltext.
va aussi faire un petit tour sur ce post :
http://www.webrankinfo.com/forums/viewtopic_41650.htm |
|
| |
|
 |
amazigh25 WRInaute passionné

Inscrit le: 04 Juin 2005 Messages: 982 Localisation: à 15 km de l'europe.
|
Posté le : Mar Mai 16, 2006 12:35 Sujet du message: Mini moteur en PHP |
|
|
Bonjour
Merci pour vos réponses
| Zim' a écrit: |
toutefois, je te suggères quelques optimisation, tel que des champs enum quand cela est possible, est des champs char(x) quand tu connais assez précisément la taille de ton champ... |
Es ce possible de bien detailler ? que veux tu dire par char(x) ?
fulltext me fait un peu peur surtout que ma table ne contiendra que peu de données . Y'a t'il un bon tutos pour savoir comment utiliser fulltext
Merci  |
|
| |
|
 |
spidetra WRInaute accro

Inscrit le: 07 Juil 2003 Messages: 1499 Localisation: Toulouse
|
Posté le : Mar Mai 16, 2006 12:48 Sujet du message: Mini moteur en PHP |
|
|
| amazigh25 a écrit: |
fulltext me fait un peu peur surtout que ma table ne contiendra que peu de données . Y'a t'il un bon tutos pour savoir comment utiliser fulltext
Merci  |
Si FullText te fait peur, et que tu as peu de données, commence avec des requêtes de type LIKE si tu veux. Il faut juste être conscient des limites en terme de perf.
Pour optimiser tes LIKE :
1. Indexe les champs sur lesquels tu veux faire tes requêtes.
2. dans le mesure du possible évite le joker % en début de comparaison. Ce qui n'est pas vraiment évident en production.
Il n' a pas de raison d'avoir peur de FULLTEXT, va voir la doc, inspire toi des exemples, et ça devrait rouler tout seul. En terme de perf, cela reste la meilleure solution. |
|
| |
|
 |
| |
|
|