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 :

afficher requete avec 3 tables différentes en meme temps


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Points : 18
    Points
    18
    Par défaut afficher requete avec 3 tables différentes en meme temps
    Bonjour,
    j'ai probleme au niveau de ma requete

    En faite j'ai 3 tables.

    TABLE france avec comme champs nom; prenom; taille; poid; photo; description.

    TABLE region avec comme champs nom; prenom; taille; poid; photo; description.

    TABLE departement avec comme champs nom; prenom; taille; poid; photo; description.

    Et sur la page de mon site je voudrait que sa affiche comme ceci.

    nom prenom taille poid
    photo description (requette dans la table region)
    -----------------------------
    nom prenom taille poid
    photo description (requette dans la table france)
    -----------------------------
    nom prenom taille poid
    photo description (requette dans la table departement)
    -----------------------------
    .....
    .....etc....


    Pour tout se qui est de la mise en forme, afficher en boucle et autre.... c'est bon.
    C'est juste pour afficher la requette avec les 3 tables en meme temps. Exemple toutes les personnes qui on la meme taille

    Voici se que j'ai fait apres mettre connecté au serveur:

    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
    $requete = "SELECT * FROM france 
    LEFT JOIN region 
    ON france.avatar = region.id
    LEFT JOIN departement
    ON france.avatar = departement.id ";
    $envoi = mysql_query($requete)or die(mysql_error());
     
    // début du tableau ( hors boucle )
     
    while($tableau = mysql_fetch_array($envoi))
    {
    ?>
    	<tr>
    	<td width="100" align="center" valign="top" bgcolor="#DCDCDC"><?php echo $tableau['nom'];?></td>
    		<td width="100" align="center" valign="top" bgcolor="#DCDCDC"><?php echo $tableau['nom'];?></td>
    		<td width="100" align="center" valign="top" bgcolor="#DCDCDC"><?php echo $tableau['prenom'];?></td>
    		<td width="100" align="center" valign="top" bgcolor="#DCDCDC"><?php echo $tableau['taille'];?></td>
    		<td width="100" align="center" valign="top" bgcolor="#DCDCDC"><?php echo $tableau['poid'];?></td>
    	</tr>
    	<tr>
    	    <td width="100%" colspan="4" align="left" valign="top">
     
    		<?php 
    		$destination = $tableau['avatar']; //destination des images
    $dimensions = @getimagesize($destination); 
     
    if($dimensions[0]<=120 && $dimensions[1]<=120) //si la longueur et inférieure ou égale à 120 de même pour la largeur
    {
     
     
          echo'<img src="'.$tableau['avatar'].' " class="imageflottante"  />';
     
     
    }
     
    else
    {
     
         echo'<img src="'.$tableau['avatar'].' " class="imageflottante" style="width:auto; height:150px;" />';
     
    }
     
    		?><?php echo $tableau['description'];?>
    	</td>
        </tr>
     
    	<tr>
    		<td colspan="4">---------------------------------------------------------------------------</td>
     
    	</tr>
     
    <?php
    j'espère etre claire.

    MERCI

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Renseigne-toi sur les clés étrangères... Tu vas pas arriver à faire de JOIN si t'as rien qui lie un département à sa région et région à son pays.

    Je suis aussi hyper sceptique sur ta table "france". Tu vas stocker quoi, là-dedans ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 144
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    Le principe des tables est de ne stocker qu'une seule fois les informations, et de les lier avec des champs d'identifiants.

    Pourquoi ne fais-tu pas :
    table Personne : champs : id_pers;nom; prenom; taille; poids; photo; description
    table Localisation : champs : (clé), lien_france, lien_region, lien_dept

    ainsi pour une localisation clé = 20, tu peux avoir lien_france = NULL, lien_region = 48, lien_dept = 48

    Je crois qu'il faut que tu clarifies la structure de ta base, que tu réfléchisses un peu plus dessus, puis que tu nous informes de tes modifications de ta structure (s'il y en a).

    PS : "poids" prend toujours un "s", même si par coquetterie on veut en perdre beaucoup

Discussions similaires

  1. Requete avec inner join sur une meme table
    Par mattmax dans le forum Développement
    Réponses: 1
    Dernier message: 15/12/2011, 14h34
  2. Requete avec 2 tables
    Par Nicos77 dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/01/2007, 15h04
  3. pb de requete avec 4 tables
    Par fscli dans le forum Access
    Réponses: 1
    Dernier message: 30/05/2006, 22h29
  4. Réponses: 8
    Dernier message: 13/03/2006, 17h37
  5. Une requete sur 3 tables différentes. [Le retour]
    Par CritikKiller dans le forum Requêtes
    Réponses: 11
    Dernier message: 13/03/2006, 01h43

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