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 :

Récupération de données sur une table dont plusieurs colonnes renvoient à une même table en une seule requête.


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Récupération de données sur une table dont plusieurs colonnes renvoient à une même table en une seule requête.
    Bonjour,

    Je souhaite Récupérer des données sur une table dont plusieurs colonnes renvoient à une même colonne d'une autre table. Pour l'instant j'ai fait 4 requêtes. Est-ce possible de faire la même chose en 1 seule requête.

    Seconde problème relié au problème précédent
    j'ai une cinquantaine de tables où je n'ai pas forcément toutes les colonnes qui renvoient à cette même colonne de l'autre table. Comme il y a un lien cela cause une erreur, ce qui m'oblige de créer les colonnes même si elles sont vides. j'ai essayé un isset(en rouge), mais cela ne fonctionne pas.

    Merci pour vos réponses.

    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
    	$resultat_1 = mysql_query("SELECT * FROM $config, tranche AS tr, graveur AS gr WHERE id='$nid' AND $config.bord=tr.bord AND $config.designob=gr.id_designer", $link);
    	$resultat_2 = mysql_query("SELECT * FROM $config, tranche AS tr, graveur AS gr WHERE id='$nid' AND $config.bord=tr.bord AND $config.designob2=gr.id_designer", $link);
    	$resultat_3 = mysql_query("SELECT * FROM $config, tranche AS tr, graveur AS gr WHERE id='$nid' AND $config.bord=tr.bord AND $config.designre2=gr.id_designer", $link);
    	
    	$resultat = mysql_query("SELECT * FROM $config, tranche AS tr, graveur AS gr WHERE id='$nid' AND $config.bord=tr.bord AND $config.designre=gr.id_designer", $link);
    	
    		$enregistrement=mysql_fetch_assoc($resultat);
    		$enregistrement_1=mysql_fetch_assoc($resultat_1);
    		if(isset($enregistrement_2=mysql_fetch_assoc($resultat_2));
    		$enregistrement_3=mysql_fetch_assoc($resultat_3);
    	
    	
    		
    		if (isset($enregistrement_1['designer'])) 		{$designob=$enregistrement_1['designer'];}			else {$designob='';}
    		if (isset($enregistrement['designer'])) 		{$designre=$enregistrement['designer'];}			else {$designre='';}
    		if (isset($enregistrement_2['designer'])) 		{$designob2=$enregistrement_2['designer'];}			else {$designob2='';}
    		if (isset($enregistrement_3['designer'])) 		{$designre2=$enregistrement_3['designer'];}			else {$designre2='';}

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je souhaite Récupérer des données sur une table dont plusieurs colonnes renvoient à une même colonne d'une autre table
    Si ce sont bien des clés étrangères, il faut faire un produit cartésien:
    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
     
    /* tables */
    CREATE TABLE tableA (
      `id` int(10) not null auto_increment,
      `name` varchar(45) not null,
      `tableB_id` int(10) not null auto_increment,
      primary key (`id`)
    ) engine=InnoDB; 
     
    CREATE TABLE `tableB` (
      `id` int(10) not null auto_increment,
      `value` varchar(45) not null,
      primary key (`id`)
    ) engine=InnoDB; 
     
    /* Requête de selection */
    SELECT A.`name`, B.`value`
    FROM tableA AS A
    JOIN tableB AS B
    ON (A.tableB_id=B.id);

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/03/2010, 18h55
  2. [XL-2007] Récupération de données sur plusieurs fichiers
    Par jose_67 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2010, 21h48
  3. récupération de données sur une page web
    Par tomkiki dans le forum Web & réseau
    Réponses: 2
    Dernier message: 26/10/2009, 09h38
  4. Réponses: 1
    Dernier message: 01/05/2008, 09h26
  5. récupération de données sur une disquette
    Par olilacta dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 21/04/2006, 14h41

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