Récupérer le nom/prénom du direct repporteur grace à son id [Résolu]

Signaler
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Bonjour,
j'ai une table mysql avec : PeopleID ,FirstName ,LastName ,Group ,phone , DirectReport .

et voila mon code:
 <?php
	include('connexion.php');
	
	$Zone_Key = isset($_POST['Key_Hidden'])?$_POST['Key_Hidden']:'';  // !
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
    $select =  "SELECT  caetbl_people.PeopleID,
						caetbl_people.LastName,
						caetbl_people.FirstName,
						caetbl_people.Group,
						caetbl_people.phone,
						caetbl_people.DirectReport,
						caetbl_groupList.Group_Name
				FROM caetbl_people
				INNER JOIN caetbl_groupList 
				ON caetbl_groupList.GroupID = caetbl_people.Group";			
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    // si on a récupéré un résultat on l'affiche.
    if($total) 
	{
		// debut du tableau
		echo '<table border="1px" bgcolor="#000000" id="MyTabPHP">'."\n";
		// première ligne on affiche les titres 
		echo '<tr>';
		echo '<td bgcolor="#F0FFFF" width="100px"><b>First Name</b></td>';
		echo '<td bgcolor="#F0FFFF" width="105px"><b>Last Name</b></td>';
		echo '<td bgcolor="#F0FFFF" width="45px"><b>Group</b></td>';
		echo '<td bgcolor="#F0FFFF" width="530px"><b>Phone</b></td>';
		echo '<td bgcolor="#F0FFFF" width="175px"><b>Direct Report</b></td>' ;
		echo '<td bgcolor="#F0FFFF" style="display:none"><b></b></td>' ;		
		echo '</tr>'."\n";
		
		// lecture et affichage des résultats 
		while($row = mysql_fetch_array($result)) 
		{
			echo '<tr id="Row_'.$row["PeopleID"].'">';
			echo '<td bgcolor="#FFFFFF" id="IFN_'.$row["PeopleID"].'">'.$row["FirstName"].'</td>';
			echo '<td bgcolor="#FFFFFF" id="ILN_'.$row["PeopleID"].'">'.$row["LastName"].'</td>';
			echo '<td bgcolor="#FFFFFF" id="IG_'.$row["PeopleID"].'">'.$row["Group_Name"].'</td>';
			echo '<td bgcolor="#FFFFFF" id="IP_'.$row["PeopleID"].'">'.$row["phone"].'</td>';
			echo '<td bgcolor="#FFFFFF" id="IDR_'.$row["PeopleID"].'">'.$row["DirectReport"].'</td>';
			echo '<td id="RNW_'.$row["PeopleID"].'">
					<button id="BNW_'.$row["PeopleID"].'" title="Edit Line" type="button" onmouseover="'.$Zone_Key.'.value=this.id;" onclick="Edit_Tab_Up();">
						<img src="media/image/bouton.png">
					</button>
				 </td>';
			echo '</tr>'."\n";
		}
		echo '</table>'."\n";
		// fin du tableau.
    }
    else echo '<lablel id="MyTabPHP">No data in this table...</lable>';
     
    // on libère le résultat
    mysql_free_result($result);    
    ?>

Comment je pourrait faire pour faire apparaitre le nom/prénom du direct repporteur a la place de sont ID merci.

2 réponses

Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Ta question concerne la requête.. donc du SQL ...
Hors tu postes dans PHP ...

Merci d'y être vigilant à l'avenir...


Pour ce qui est de la réponse..il te faut ajouter une jointure supplémentaire.

Un truc du genre :

SELECT  P1.PeopleID
     ,P1.LastName
     ,P1.FirstName
     ,P1.Group
     ,P1.phone
     ,P1.DirectReport
     ,caetbl_groupList.Group_Name
            ,p2.LastName as  DirectReportLastName
            ,p2.FirstName as  DirectReportFirstName
            ,CONCAT(p2.LastName , ' ' , p2.FirstName) as DirectReportConcatName

FROM caetbl_people P1
INNER JOIN caetbl_groupList 
 ON caetbl_groupList.GroupID = p1.Group
INNER JOIN caetbl_people p2 
       ON p2.PeopleID = p1.DirectReport



PS: J'ai ajouté les balises de code dans ton message...
Merci de le faire toi même la prochaine fois.

PS2 : Comme tu peux le constater j'utilise des "alias" pour le nom des tables et/ou des champs... cela facilite l'écriture des requêtes....Essayes d'en faire autant à l'avenir.


Edit : Modification dans la jointure...
Correction sur le "ON"

Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
1
merci
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
Bonjour,
nom/prénom du direct repporteur

Je ne comprend pas... Tu as déjà les noms/prénoms dans ta page..

Je ne vois pas où est le souci..

A moins qu'il nous manque des informations...
L'idéal serait de nous fournir la structure de tes tables
SHOW create  table <nom_de_la_table>

avec quelques données de test...




Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
1
Voila la structure:

caetbl_people  CREATE TABLE 'caetbl_people' (
 'PeopleID' int(11) NOT NULL AUTO_INCREMENT,
 'FirstName' varchar(15) DEFAULT NULL,
 'LastName' varchar(15) DEFAULT NULL,
 'Group' int(11) DEFAULT NULL,
 'phone' varchar(25) DEFAULT NULL,
 'DirectReport' int(11) DEFAULT NULL,
 PRIMARY KEY ('PeopleID'),
 UNIQUE KEY 'PeopleID' ('PeopleID')
) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=latin1

Mon problème est que le direct repport est un nombre qui correspond a un PeopleID.
Est que pour mon problème toute les information sont dans la même table mes pas au même ligne.


Edit : Ajout des balises de code... Merci d'y penser à l'avenir !