Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Mini moteur en PHP

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
amazigh25
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Juin 2005
Messages: 982
Localisation: à 15 km de l'europe.

URL permanente de ce messagePosté 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 .
 
amazigh25 Visiter le site web du posteur
kazhar
WRInaute accro
WRInaute accro

Inscrit le: 09 Jan 2004
Messages: 6042
Localisation: Somewhere only I know

URL permanente de ce messagePosté 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.
 
kazhar Visiter le site web du posteur
amazigh25
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Juin 2005
Messages: 982
Localisation: à 15 km de l'europe.

URL permanente de ce messagePosté 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
 
amazigh25 Visiter le site web du posteur
Zim'
WRInaute passionné
WRInaute passionné

Inscrit le: 27 Avr 2006
Messages: 804
Localisation: Euh... chez moi nulle part pour l'instant :-(

URL permanente de ce messagePosté 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...
 
amazigh25 Visiter le site web du posteur
spout
WRInaute passionné
WRInaute passionné

Inscrit le: 14 Mai 2003
Messages: 666
Localisation: Manhay (Belgique)

URL permanente de ce messagePosté le : Mar Mai 16, 2006 6:17    Sujet du message: Mini moteur en PHP

Oui mais là c'est juste pour rechercher 1 seul mot clef.
Si tu veux une meilleure recherche, il te faut une recherche fulltext:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
 
spout
spidetra
WRInaute accro
WRInaute accro

Inscrit le: 07 Juil 2003
Messages: 1499
Localisation: Toulouse

URL permanente de ce messagePosté 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
 
spout
amazigh25
WRInaute passionné
WRInaute passionné

Inscrit le: 04 Juin 2005
Messages: 982
Localisation: à 15 km de l'europe.

URL permanente de ce messagePosté 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 Confused surtout que ma table ne contiendra que peu de données . Y'a t'il un bon tutos pour savoir comment utiliser fulltext Question

Merci Wink
 
amazigh25 Visiter le site web du posteur
spidetra
WRInaute accro
WRInaute accro

Inscrit le: 07 Juil 2003
Messages: 1499
Localisation: Toulouse

URL permanente de ce messagePosté le : Mar Mai 16, 2006 12:48    Sujet du message: Mini moteur en PHP

amazigh25 a écrit:

fulltext me fait un peu peur Confused surtout que ma table ne contiendra que peu de données . Y'a t'il un bon tutos pour savoir comment utiliser fulltext Question

Merci Wink


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.
 
amazigh25 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort