IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Moteur de recherche sur plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    407
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2003
    Messages : 407
    Points : 117
    Points
    117
    Par défaut Moteur de recherche sur plusieurs tables
    Bonsoir,

    Voilà je souhaite mettre en place sur mon site un moteur de recherche mais je ne sais pas trop comment m'y prendre car celui ci doit pouvoir cherche sur 3 tables
    voici la structure des mes tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    CREATE TABLE comparateur_marque (
      id_marque int(10) NOT NULL auto_increment,
      nom varchar(50) NOT NULL,
      adresse1 varchar(100) NOT NULL,
      adresse2 varchar(100) NOT NULL,
      cp varchar(7) NOT NULL,
      ville varchar(50) NOT NULL,
      pays varchar(50) NOT NULL,
      tel varchar(20) NOT NULL,
      fax varchar(20) NOT NULL,
      email varchar(50) NOT NULL,
      web varchar(50) NOT NULL,
      logo varchar(200) NOT NULL,
      PRIMARY KEY  (id_marque),
      KEY nom (nom)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
     
     
    CREATE TABLE comparateur_type (
      id_type int(5) NOT NULL auto_increment,
      `type` varchar(50) NOT NULL,
      image varchar(100) NOT NULL,
      parent int(3) NOT NULL default '0',
      PRIMARY KEY  (id_type)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
     
     
    CREATE TABLE comparateur_velo (
      id_velo int(5) NOT NULL auto_increment,
      id_marque int(10) NOT NULL,
      id_type int(10) NOT NULL,
      modele varchar(100) NOT NULL,
      ref varchar(100) NOT NULL,
      cadre varchar(250) NOT NULL,
      amortisseur varchar(250) NOT NULL,
      fourche varchar(250) NOT NULL,
      direction varchar(250) NOT NULL,
      boitier varchar(250) NOT NULL,
      pedalier varchar(250) NOT NULL,
      pedale varchar(250) NOT NULL,
      potence varchar(250) NOT NULL,
      tige_selle varchar(250) NOT NULL,
      cintre varchar(250) NOT NULL,
      der_av varchar(250) NOT NULL,
      der_ar varchar(250) NOT NULL,
      frein varchar(250) NOT NULL,
      manette varchar(250) NOT NULL,
      selle varchar(250) NOT NULL,
      roue varchar(250) NOT NULL,
      cassette varchar(250) NOT NULL,
      pneu varchar(250) NOT NULL,
      chaine varchar(250) NOT NULL,
      poids float(3,2) NOT NULL,
      taille varchar(250) NOT NULL,
      technologie text NOT NULL,
      description text NOT NULL,
      prix float(9,2) NOT NULL,
      photo varchar(200) NOT NULL,
      annee year(4) NOT NULL,
      date_ajout datetime NOT NULL,
      date_modif datetime NOT NULL,
      afficher tinyint(1) NOT NULL,
      geometrie varchar(200) NOT NULL,
      moyeux varchar(250) NOT NULL,
      rayon varchar(250) NOT NULL,
      levier_frein varchar(250) NOT NULL,
      PRIMARY KEY  (id_velo),
      KEY id_marque (id_marque,id_type,prix,photo,afficher)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
    en fait si je recherche juste dans la tablea comparateur_velo pas de soucis mais si une personne ajout la marque devant je suis bloqué car la marque est stocké dans l'autre table comparateur_marque, de même pour le type.

    Exemple : si une personne tape "rockrider" pas de soucis je vais trouver dans ma table comparateur_velo
    mais s'il tape "vtt decathlon rockrider" je ne vais rien trouver car "vtt" est dans la table comparateur_type et "decathlon" dans comparateur_marque

    il doit forcement y avoir une astuce mais personnelement je ne sais pas faire

    merci d'avance pour votre aide et bon réveillon à tous

    Ludo

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 800
    Points : 34 051
    Points
    34 051
    Billets dans le blog
    14
    Par défaut
    Il faut utiliser les jointures !

Discussions similaires

  1. [MySQL] moteur de recherche sur plusieur table php mysql
    Par chrisl46 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/04/2014, 18h33
  2. moteur de recherche sur plusieurs table liees
    Par oliv3400 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2012, 12h30
  3. [MySQL] moteur de recherche sur plusieurs tables
    Par harlock59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/04/2007, 15h23
  4. [MySQL] Moteur de recherche sur plusieurs pages
    Par DonKnacki dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 30/01/2007, 14h47
  5. [MySQL] Recherche sur plusieurs tables
    Par hubidev dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/03/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo