Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Moteur de recherches sur 3 tables mysql

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
 
webcrea
Nouveau WRInaute

Inscrit le: 01 Sep 2003
Messages: 49
Localisation: Paris

URL permanente de ce messagePosté le : Lun Déc 19, 2005 13:19    Sujet du message: Moteur de recherches sur 3 tables mysql

Bonjour,

Peut-être pourrez-vous m'aider :
je cherche donc à faire une recherche multi-tables.
J'ai une table de films, une autre d'acteurs et une autre de réalisateurs.
J'aimerai simplement que lorsqu'un visiteur fasse une recherche, celle-ci soit faite sur l'ensemble des tables.

Voici ma requête (fausse) qui me ramène un film autant de fois qu'il y a d'acteurs différents (et en affichant spielberg pour chaque résultat !) Sad .

Code:
SELECT p.titre, p.description, a.nom, r.nom FROM dsf_produits p, dsf_acteurs a, dsf_realisateurs r where p.titre LIKE '%spielberg%' OR p.description LIKE '%spielberg%' OR a.nom LIKE '%spielberg%' OR r.nom LIKE '%spielberg%'


Avez-vous une idée d'où vient mon erreur ?

Merci de votre aide
 
webcrea Visiter le site web du posteur
chantra
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Juin 2005
Messages: 257

URL permanente de ce messagePosté le : Lun Déc 19, 2005 13:34    Sujet du message: Moteur de recherches sur 3 tables mysql

utilise les inner join, ca devrait aider.
Code:
SELECT p.titre, p.description, a.nom, r.nom FROM dsf_produits p inner join dsf_acteurs as a on (a.id_film=p.id)
inner join  dsf_realisateurs as r on (r.id_film=p.id)
where p.titre LIKE '%spielberg%' OR p.description LIKE '%spielberg%' OR a.nom LIKE '%spielberg%' OR r.nom LIKE '%spielberg%'
 
chantra Visiter le site web du posteur
webcrea
Nouveau WRInaute

Inscrit le: 01 Sep 2003
Messages: 49
Localisation: Paris

URL permanente de ce messagePosté le : Lun Déc 19, 2005 13:53    Sujet du message: Moteur de recherches sur 3 tables mysql

ça ne donne aucun résultat.

Code:
SELECT p.titre, p.description, a.nom, r.nom
FROM dsf_produits p
INNER JOIN dsf_acteurs AS a ON ( a.id = p.id )
INNER JOIN dsf_realisateurs AS r ON ( r.id = p.id )
WHERE p.titre LIKE '%spielberg%'
OR p.description LIKE '%spielberg%'
OR a.nom LIKE '%spielberg%'
OR r.nom LIKE '%spielberg%'


Cette recherche devrait donner 3 résultats...
 
webcrea Visiter le site web du posteur
chantra
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Juin 2005
Messages: 257

URL permanente de ce messagePosté le : Lun Déc 19, 2005 13:57    Sujet du message: Moteur de recherches sur 3 tables mysql

Du devrait peut-etre jongler avec les differents types de join (left, right, inner).

puis ca depend un peu de la structure de ta base
 
chantra Visiter le site web du posteur
webcrea
Nouveau WRInaute

Inscrit le: 01 Sep 2003
Messages: 49
Localisation: Paris

URL permanente de ce messagePosté le : Lun Déc 19, 2005 14:01    Sujet du message: Moteur de recherches sur 3 tables mysql

J'ai vais mal adapté mes noms de champs.
C'était bien ça Chantra, merci !
 
webcrea Visiter le site web du posteur
chantra
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Juin 2005
Messages: 257

URL permanente de ce messagePosté le : Lun Déc 19, 2005 14:07    Sujet du message: Moteur de recherches sur 3 tables mysql

Smile .
Ben au moins ca marche Smile
le site est en construction ou il tourne deja?

s'il tourne deja, tu peux m'envoyer l'url en pm stp.
merci
 
chantra Visiter le site web du posteur
YvesB
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Jan 2004
Messages: 515
Localisation: Bournemouth, England

URL permanente de ce messagePosté le : Lun Déc 19, 2005 16:36    Sujet du message: Moteur de recherches sur 3 tables mysql

Facile, il faut juste que tu accordes les id de chaque tables

Code:
SELECT p.titre, p.description, a.nom, r.nom
FROM dsf_produits p
WHERE  a.id = p.id and r.id = p.id and (p.titre LIKE '%spielberg%'
OR p.description LIKE '%spielberg%'
OR a.nom LIKE '%spielberg%'
OR r.nom LIKE '%spielberg%')
 
YvesB Visiter le site web du posteur
chantra
WRInaute impliqué
WRInaute impliqué

Inscrit le: 27 Juin 2005
Messages: 257

URL permanente de ce messagePosté le : Lun Déc 19, 2005 17:02    Sujet du message: Moteur de recherches sur 3 tables mysql

au passage, est-ce que quelqu'un sait ce qui est le mieux (en terme de performances)entre les requetes avec inner join ou les requetes multiple php.
 
chantra 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    

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