Moteur de recherches sur 3 tables mysql

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Moteur de recherches sur 3 tables mysql

Message le Lun Déc 19, 2005 12:19

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 !) :( .

Code: Tout sélectionner
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


chantra
WRInaute impliqué
WRInaute impliqué
 
Messages: 257
Inscription: Lun Juin 27, 2005 19:12

Message le Lun Déc 19, 2005 12:34

utilise les inner join, ca devrait aider.
Code: Tout sélectionner
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%'

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Lun Déc 19, 2005 12:53

ça ne donne aucun résultat.

Code: Tout sélectionner
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...


chantra
WRInaute impliqué
WRInaute impliqué
 
Messages: 257
Inscription: Lun Juin 27, 2005 19:12

Message le Lun Déc 19, 2005 12:57

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

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Lun Déc 19, 2005 13:01

J'ai vais mal adapté mes noms de champs.
C'était bien ça Chantra, merci !


chantra
WRInaute impliqué
WRInaute impliqué
 
Messages: 257
Inscription: Lun Juin 27, 2005 19:12

Message le Lun Déc 19, 2005 13:07

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

s'il tourne deja, tu peux m'envoyer l'url en pm stp.
merci


YvesB
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Dim Jan 11, 2004 18:36

Message le Lun Déc 19, 2005 15:36

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

Code: Tout sélectionner
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%')


chantra
WRInaute impliqué
WRInaute impliqué
 
Messages: 257
Inscription: Lun Juin 27, 2005 19:12

Message le Lun Déc 19, 2005 16:02

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.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Analyse du positionnement dans Google
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Google, pour certains mots-clés recherchés.
  • Analyse du positionnement dans Yahoo
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Yahoo, pour certains mots-clés recherchés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités