Bonsoir et merci pour ceux qui me liront et pour votre aide,
Je voudrai créer un tableau dynamique (PHP/HTML), ce tableau contient 5 colonnes, la première représente le nom de l'employé, et les quatres autres colonnes représente chacune un mois. Le but de ce tableau est d'afficher des prévisions du nombre de jours travaillés par chaque employé pendant le mois, on aura donc une prévision sur 4 mois flottant.
J'ai créé une première requête qui va remplir ma première colonne avec le nom des employés, et j'ai créé une requête pour chacune des quatres colonnes qui représentent les mois pour les remplir.
Le problème est le suivant:
ma première requête m'affiche 30 employés,
par contre les autres requêtes m'affichent selon le mois des résultats pour les 30 employés et des fois moins parce qu'il n'y a pas de données pour les autres.
Mon souci c'est que je n'arrive pas à afficher chaque résultat (nombre jours travaillés) dans la ligne de l'employé qui correspond.
J'ai trouvé des posts qui ressemblent un peu à mon problème mais ils ne traitent que le cas d'un seule requête qui remplit tout le tableau.
Je m'excuse si j'ai été long, j'essayais d'expliquer au mieux mon problème.
Voici une partie de mon code:
<?php
//requete qui compte le nombre de ligne pour le tableau=nombre employes
$nb_consultants=sprintf("SELECT COUNT(`ID_PERSONNE`) AS TOTAL
FROM personne
left join types_valeurs typstat on personne.STATUT=typstat.ID_TYPES
where typstat.VALEUR='Actif'");
$result=mysql_query($nb_consultants) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
$NbrLigne=$row['TOTAL'];
$NbrCol=4;
echo '<table border="1" width="400">';
// 1ere ligne (ligne 0)
echo '<tr>';
echo '<td bgcolor="#CCCCCC">';
echo 'Employés/Période</td>';
for ($j=1; $j<=$NbrCol; $j++) {
echo '<td bgcolor="#FFFF66">';
//ici je mettrai plutard la variable qui represente le mois
echo $j.'</td>';
}
echo '</tr>';
//lignes suivante
//requete qui affiche les employes
$nom_consultants=sprintf("SELECT pers.ID_PERSONNE,pers.NOM,pers.PRENOM
FROM personne pers
left join types_valeurs typstat on pers.STATUT=typstat.ID_TYPES
where typstat.VALEUR='Actif'
order by pers.NOM");
$result=mysql_query($nom_consultants) OR die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
echo '<tr>';
for ($j=1; $j<=$NbrCol; $j++) {
// 1ere colonne (colonne 0)
if ($j==1) {
echo '<td bgcolor="#FFFF66" nowrap>';
echo "".$row['NOM']." ".$row['PRENOM'].'</td>';
}
// colonne 1 (mois 1)
//requete qui affiche le total des jours travaillés en mission et hors mission pour chaque consultant pendant le mois
//j'ai pris pour le moment un exemple de mois car je n'ai pas encore traité cette partie
$query2=sprintf("select act.TOTAL_J_MISSIONS_HORS_MISSIONS, act.VALIDATION, peri.NOM_PERIODE,pers.NOM, typstat.VALEUR as TYPSTATUT from activite act
left join personne pers on pers.ID_PERSONNE=act.ID_PERSONNE
left join periode peri on peri.ID_PERIODE=act.ID_PERIODE
left join types_valeurs typstat on pers.STATUT=typstat.ID_TYPES
where act.VALIDATION=1 and typstat.VALEUR='Actif' and peri.NOM_PERIODE='Mai 2008'
order by pers.NOM");
$result2=mysql_query($query2) OR die(mysql_error());
$row2 = mysql_fetch_assoc($result2);
echo '<td>';
// AFFICHAGE ligne $i, colonne $j
echo $row2['TOTAL_J_MISSIONS_HORS_MISSIONS'];
echo '</td>';
}
echo '</tr>';
$j=1;
//les requêtes pour le mois 2, 3 et 4 different de la premiere, j'essaie d'abord traiter la premire colonne mois 1
}
echo '</table>';
?>
Je vous remercie si vous avez des astuces à me donner.
Merci encore et bonne soirée.