EnguerrandP
Messages postés295Date d'inscriptionvendredi 26 avril 2013StatutMembreDernière intervention15 juillet 2015
-
12 mai 2014 à 12:06
EnguerrandP
Messages postés295Date d'inscriptionvendredi 26 avril 2013StatutMembreDernière intervention15 juillet 2015
-
12 mai 2014 à 14:11
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.
jordane45
Messages postés37727Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 septembre 2023342 Modifié par jordane45 le 12/05/2014 à 14:14
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
EnguerrandP
Messages postés295Date d'inscriptionvendredi 26 avril 2013StatutMembreDernière intervention15 juillet 20151 12 mai 2014 à 14:11
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 !
12 mai 2014 à 14:11