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 toutes les données de 2 tables dans une même requête ! [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai Avatar de Tchams
    Homme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    Janvier 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Afficher toutes les données de 2 tables dans une même requête !
    Bonjour à tous!

    J'aimerai savoir comment s'il vous plait je peut faire pour afficher les données de 2 tables dans une même requête "while" par exemple. Je m'explique, j'ai 2 tables qui ne sont pas identiques mais qui ont le même nombre de ligne et j'aimerai avoir les données de la première ligne de la table une et juste après avoir les données de la deuxième ligne de la table 2 et ainsi de suite jusqu'à ce qu'il n'y ai plus de ligne.

    Voilà ce que j'ai fait entre temps et qui marche assez bizarrement :
    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
     
    <?php
       function connexionPDO(){
           $login = "root";
           $mdp = "";
           $bd = "test_tuto";
           $serveur = "localhost";
           try{
               $conn = new PDO("mysql:host=$serveur;dbname=$bd", $login, $mdp);
               return $conn;
           }catch(PDOException $e){
               print "Erreur de connexion PDO";
               die(); // On peut également faire un return null
           }
       }
    ?>
     
    <?php
    if (isset($_GET['pseudo']))
    {
    	?><h1 class="encadrement_e"/><?php echo 'Compte de : ' . $_GET['pseudo'] . '<br />'; ?> </h1><?php
     
    	// On récupère tout le contenu de notre table
    	$pdo = connexionPDO();
     
    	/*$reponse = $pdo->query('SELECT p.datemesure, p.nom, p.profession, p.tel, p.email, p.conducteur, 
    	p.circonstance, p.proces, p.vehiculeAssure, p.degats, p.blesses, p.dateAccident, p.lieu, p.gps, 
    	p.pseudo_profil, f.photo_name, f.signature_name, f.caption FROM profil p LEFT OUTER JOIN photo f 
    	ON  f.caption=p.pseudo_profil WHERE pseudo_profil=\'' . $_GET['pseudo'] . '\' ORDER BY p.datemesure desc');*/
     
    	$reponse = $pdo->query('SELECT * FROM profil INNER JOIN photo ON profil.pseudo_profil=photo.caption 
    	WHERE profil.pseudo_profil=\'' . $_GET['pseudo'] . '\' AND photo.caption=\'' . $_GET['pseudo'] . '\' ');
     
    	// On affiche chaque entrée une à une
    	while ($donnees = $reponse->fetch())
    	{
     
    	?>
    		<div class="encadrement">
     
    			<p class="encadrement_e"> Date d'enregistrement : <?php echo $donnees['datemesure']; ?> </p> </br>
    			<p class="encadrement_e2"/> <strong>Nom du propriétaire du véhicule : </strong><?php echo $donnees['nom']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Profession : </strong><?php echo $donnees['profession']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Numéro de téléphone : </strong><?php echo $donnees['tel']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Email : </strong><?php echo $donnees['email']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Nom du conducteur: </strong><?php echo $donnees['conducteur']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Circonstance de l'accident : </strong><?php echo $donnees['circonstance']; ?> </br>
    			<p class="encadrement_e2"/> <strong>procès verbal établi ? </strong><?php echo $donnees['proces']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Le véhicule est-il assuré ? </strong><?php echo $donnees['vehiculeAssure']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Dégats de l'accident : </strong><?php echo $donnees['degats']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Nom et nombre des blessés : </strong><?php echo $donnees['blesses']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Date de l'accident : </strong><?php echo $donnees['dateAccident']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Lieu de l'accident : </strong><?php echo $donnees['lieu']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Données GPS : </strong><?php echo $donnees['gps']; ?> </br>
    			<p class="encadrement_e2"/> <strong>Pseudo du propriétaire du compte : </strong><?php echo $donnees['pseudo_profil']; ?> </br>
     
    		</div>
    	<?php
    	}
     
    	$reponse->closeCursor(); // Termine le traitement de la requête
     
    	}
    	else
    	{
    	        header('Location: account');
    	}
    ?>
    En effet, le code ci-dessus m'affiche mes données mais il répètes autant de fois qu'il y'a de ligne dans les tables de ma BDD. Pour être plus claire, mes 2 tableaux ont 4 lignes chacune et à chaque fois que la requête fait un "while" il m'affiche 4 fois les mêmes données avants de passées au suivantes. Donc, je me retrouve avec 16 blocs dont 12 qui sont des répétitions.

    Toutes aides à ce problème est la bien venue, ça fait plus de 2 jours que je suis déçu et je commence véritablement à décourager.
    Excellente journée à tous!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-on voir la structure et contenu des 2 tables ?

  3. #3
    Membre à l'essai Avatar de Tchams
    Homme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    Janvier 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Salut jreaux62 et merci d'avoir répondu aussi rapidement. J'ai pu trouver une solution à problème, même si elle n'est pas très professionnel ça marche, comme quoi il fallait que j'en parle ici pour pouvoir avancée. Voilà ce que j'ai fait :

    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
    $reponse = $pdo->query('SELECT * FROM profil WHERE profil.pseudo_profil=\'' . $_GET['pseudo'] . '\' order by datemesure desc');
    			$reponse2 = $pdo->query('SELECT * FROM photo WHERE photo.caption=\'' . $_GET['pseudo'] . '\' order by id desc');
     
    			?><div class="encadrement"><?php
     
    				while ($donnees = $reponse->fetch())
    				{
    			?>
    					<p class="encadrement_e"> Date d'enregistrement : <?php echo $donnees['datemesure']; ?> </p> </br>
    					<p class="encadrement_e2"/> <strong>Nom du propriétaire du véhicule : </strong><?php echo $donnees['nom']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Profession : </strong><?php echo $donnees['profession']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Numéro de téléphone : </strong><?php echo $donnees['tel']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Email : </strong><?php echo $donnees['email']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Nom du conducteur: </strong><?php echo $donnees['conducteur']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Circonstance de l'accident : </strong><?php echo $donnees['circonstance']; ?> </br>
    					<p class="encadrement_e2"/> <strong>procès verbal établi ? </strong><?php echo $donnees['proces']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Le véhicule est-il assuré ? </strong><?php echo $donnees['vehiculeAssure']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Dégats de l'accident : </strong><?php echo $donnees['degats']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Nom et nombre des blessés : </strong><?php echo $donnees['blesses']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Date de l'accident : </strong><?php echo $donnees['dateAccident']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Lieu de l'accident : </strong><?php echo $donnees['lieu']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Données GPS : </strong><?php echo $donnees['gps']; ?> </br>
    					<p class="encadrement_e2"/> <strong>Pseudo du propriétaire du compte : </strong><?php echo $donnees['pseudo_profil']; ?> </br>
    					<?php 
    						$donnees2 = $reponse2->fetch();
    					?>
    					<p class="encadrement_e2"/> <strong>Nom de la photo de l'accident : </strong><?php echo $donnees2['photo_name'];?></br><?php
    					echo '<a href="phone/upload_photo/'.$donnees2['photo_name'].'"><img class="encadrement_e3" src="phone/upload_photo/'.$donnees2['photo_name'].'" alt="photo accident" title="Cliquez pour agrandir"/></a>';
    					?> </br>
    					<p class="encadrement_e2"/> <strong>Nom de la signature : </strong><?php echo $donnees2['signature_name'];?></br><?php
    					echo '<a href="phone/upload_signature/'.$donnees2['signature_name'].'"><img class="encadrement_e3" src="phone/upload_signature/'.$donnees2['signature_name'].'" alt="photo signature" title="Cliquez pour agrandir"/></a>';
    					?> </br>
     
     
    					<div class="espace"> </div>
     
    				<?php
    				}
    				$reponse->closeCursor(); // Termine le traitement de la requête
     
    			?></div><?php
    Mais je suis toujours à la recherche d'une solution plus propre donc voilà la structure des tables:

    Bonne fin de soirée !
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/05/2011, 23h55
  2. Réponses: 8
    Dernier message: 07/06/2009, 21h31
  3. [VB6]Grouper les données des deux tables dans une troisième
    Par Abed_H dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/04/2009, 12h29
  4. Réponses: 3
    Dernier message: 01/09/2008, 19h34
  5. [MySQL] Afficher toutes les données d'un champ dans une liste déroulante
    Par Touareg dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/03/2007, 13h42

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