EnguerrandP
Messages postés295Date d'inscriptionvendredi 26 avril 2013StatutMembreDernière intervention15 juillet 2015
-
21 mai 2014 à 13:12
EnguerrandP
Messages postés295Date d'inscriptionvendredi 26 avril 2013StatutMembreDernière intervention15 juillet 2015
-
21 mai 2014 à 17:00
Bonjour,
J'ai un soucis je n'arrive pas a réaliser la boucle qui pourrais me permettre de crée un tableau :
-Qui crée une ligne pour le premier N°de projet qui correspond au filtre sélectionner et qui vas lister dans les lignes suivantes le N°de request.
-Puis va passer au suivant et ainsi de suite jusqu'à la fin.
Voila se que j'ai fais
<html>
<title>TimeSheet Sorted by date</title>
<body>
<style>
.couleur_texte
{
color: blue;
font-style:italic;
font-size: xx-large;
font-weight: bold;
}
#body
{
width : 50%;
margin : auto;
}
table
{
border: medium solid #000000;
width: 100%;
}
td
{
font-family: sans-serif;
border: thin solid #000000;
width: 50%;
padding: 5px;
text-align: center;
background-color: #ffffff;
}
</style>
<div id="body">
<?php
include("connexion.php");
$Worker = $_POST['Worker'];
$Between = $_POST['Between'];
$End = $_POST['End'];
$select = "SELECT caetbl_ProgList.ProgramNumber,
count(caetbl_TimeTracking.date),
caetbl_GroupList.Group_Name,
caetbl_people.LastName,
sum(time_spent),
caetbl_Sim_requests.RequestID,
caetbl_Sim_requests.Sim_Title,
caetbl_ProgList.Description
FROM (caetbl_GroupList INNER JOIN (caetbl_ProgList INNER JOIN caetbl_Sim_requests ON caetbl_ProgList.ProgramNumber=caetbl_Sim_requests.Proj_Number)
ON caetbl_GroupList.GroupID=caetbl_ProgList.Group)
INNER JOIN (caetbl_people INNER JOIN caetbl_TimeTracking ON caetbl_people.PeopleID=caetbl_TimeTracking.Worker)
ON caetbl_Sim_requests.RequestID=caetbl_TimeTracking.SimRequest
WHERE (((caetbl_TimeTracking.date) Between '$Between' And '$End')
AND ((caetbl_people.PeopleID)='$Worker'))";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
$select1 = "SELECT caetbl_ProgList.ProgramNumber,
count(caetbl_TimeTracking.date),
caetbl_TimeTracking.date,
caetbl_GroupList.Group_Name,
caetbl_people.LastName,
sum(time_spent),
caetbl_Sim_requests.RequestID,
caetbl_Sim_requests.Proj_Number,
caetbl_Sim_requests.Sim_Title,
caetbl_ProgList.Description
FROM (caetbl_GroupList
INNER JOIN (caetbl_ProgList
INNER JOIN caetbl_Sim_requests
ON caetbl_ProgList.ProgramNumber=caetbl_Sim_requests.Proj_Number)
ON caetbl_GroupList.GroupID=caetbl_ProgList.Group)
INNER JOIN (caetbl_people
INNER JOIN caetbl_TimeTracking
ON caetbl_people.PeopleID=caetbl_TimeTracking.Worker)
ON caetbl_Sim_requests.RequestID=caetbl_TimeTracking.SimRequest
WHERE (((caetbl_TimeTracking.date) Between '$Between' And '$End')
AND ((caetbl_people.PeopleID)='$Worker'))
GROUP BY Proj_Number";
$result1 = mysql_query($select1) or die ('Erreur : '.mysql_error() );
$total1 = mysql_num_rows($result1);
// si on a récupéré un résultat on l'affiche.
if($total)
{
//$row0 = mysql_fetch_array($result0)
//En-tête
$row = mysql_fetch_array($result);
echo '<fieldset>
<label class="couleur_texte">TimeSheet</label> <br />
<label >Check of data :</label > <br />
<label >Date mentionned : </label><label >'.$row["count(caetbl_TimeTracking.date)"].'</label > <br />
<label >Total hours work : </label><label >'.$row["sum(time_spent)"].'</label > <br />
</fieldset>';
//En-tête du tableau
echo '<table align="center" >'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Date</u></b></td>';
echo '<td bgcolor="#669999"></td>';
echo '<td bgcolor="#669999"></td>';
echo '<td bgcolor="#669999"><b><u>Time(h)</u></b></td>';
echo '</tr>'."\n";
//Corp du tableau
while($row1 = mysql_fetch_array($result1))
{
echo '<tr>';
echo '<th bgcolor="#696969">'.$row1["ProgramNumber"].'</th>';
$PN=$row1["ProgramNumber"];
echo '<th bgcolor="#696969">'.$row1["Description"].'</th>'; //titel Project
echo '<th bgcolor="#696969">'.$row1["count(caetbl_TimeTracking.date)"].'</th>'; //day marked
echo '<th bgcolor="#696969">'.$row1["sum(time_spent)"].'</th>';
echo '</tr>'."\n";
if($row1["Proj_Number"]=$row1["ProgramNumber"])
{
echo '<tr>';
echo '<td bgcolor="#FFFFFF">'.$row1["date"].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row1["Sim_Title"].'</td>'; //titel request
echo '<td bgcolor="#FFFFFF">'.$row1["RequestID"].'</td>';
echo '<td bgcolor="#FFFFFF"></td>';
echo '</tr>'."\n";
}
}
echo '</table>'."\n";
//fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);
?>
</div>
</body>
</html>
Définissez plusieurs FONCTIONS plutôt que d'avoir un bloc si énorme où l'on se perd !
Bien à vous, YepoMax
YepoMax
Messages postés74Date d'inscriptionsamedi 8 décembre 2012StatutMembreDernière intervention14 juin 201420 21 mai 2014 à 16:14
Je me suis mal exprimé, je ne voulais pas donner la solution mais corriger ne fut-ce que la syntaxe. Si vous remplacez le "while" par celui que j'ai donné, ça ne fonctionnera pas car $row1 = mysql_fetch_array($result1) n'est pas une CONDITION mais bien ASSIGNER une valeur à une variable.
Vous devez revoir votre code au niveau du while, pour cela je vous conseille donc d'écrire des fonctions (par exemple une qui prendra comme paramètre une ligne (row) et qui vous retournera un chaine de caractères contenant le code HTML à imprimer (echo)). En décomposant votre code, je suis certain qu'il vous paraitra évident que votre while pose un soucis et que vous verrez plus clair pour le corriger.
21 mai 2014 à 16:14
Vous devez revoir votre code au niveau du while, pour cela je vous conseille donc d'écrire des fonctions (par exemple une qui prendra comme paramètre une ligne (row) et qui vous retournera un chaine de caractères contenant le code HTML à imprimer (echo)). En décomposant votre code, je suis certain qu'il vous paraitra évident que votre while pose un soucis et que vous verrez plus clair pour le corriger.