Problème d'affichage pour une gestion de relance de commande
Posté : 30 janv. 2006, 16:30
Bonjour,
J'ai un problème au niveau de ma boucle à mon avis.C'est la deuxième journée que je galère sur cet affichage de m****...
Voici ce que j'obtiens avec mon code :
http://img99.imageshack.us/my.php?image=ai2av.gif
Et ce voila ce que j'aimerais :
http://img59.imageshack.us/my.php?image ... eux2lg.gif
et voila mon super code lol
Je désespère...Surtout que c'est pour mon stage de deuxieme année...
Merci d'avance ^^
J'ai un problème au niveau de ma boucle à mon avis.C'est la deuxième journée que je galère sur cet affichage de m****...
Voici ce que j'obtiens avec mon code :
http://img99.imageshack.us/my.php?image=ai2av.gif
Et ce voila ce que j'aimerais :
http://img59.imageshack.us/my.php?image ... eux2lg.gif
et voila mon super code lol
//Requête permettant d'avoir toutes les données nécessaires sur une commande de
//sous-traitance
$req = "SELECT * FROM cdefrs,cdecli,client,fournisseur "
."WHERE reffrs=idfrs AND refcdecli=idcdecli AND refcli=idcli "
."ORDER BY datedelai DESC";
//Exécution de la requête
$res = $bd->execRequete ($req); //correspond à mysql_query
$numeroannee=0;//On initialise numeroannee à 0
while ($nbcde = $bd->objetSuivant($res)) //correspond à mysql_fecth_object
{
list($ad,$md,$jd) = explode("-",$nbcde->datedelai);//on récupère l'année, le mois et le jour
$annee = substr($ad,2,2);//On récupère les deux derniers chiffres de l'année
//On convertit la date délai en timestamp pour la comparer avec
//le timestamp de la date d'aujourd'hui
$datedelai = mktime (0,0,0,$md,$jd,$ad);
//Récupération du numéro de semaine calculé à partir du timestamp
//de la date delai
$numsemaine=date('W',$datedelai);
//Contrôle du numéro de la semaine de la date délai
//Si la date est le 1er,2 ou janvier, et que d'après le timestamp Unix,
//elle fait partit de le 52ème ou 53ème semaine de l'année précédente, on
//remplace la valeur du numéro de semaine par la valeur '01'.
if ( ($numsemaine==53 && $jd==1 && $md==1) or ($numsemaine==52 && $jd==1 && $md==1) )
{
$numsemaine='01';
}
elseif ( ($numsemaine==53 && $jd==2 && $md==1) or ($numsemaine==52 && $jd==2 && $md==1) )
{
$numsemaine='01';
}
elseif ( ($numsemaine==53 && $jd==3 && $md==1) or ($numsemaine==52 && $jd==3 && $md==1) )
{
$numsemaine='01';
}
//Si l'année XXXX n'est pas déjà affichée, on l'affiche
if ($numeroannee != $ad)
{
echo '<h2>PLANNING DE SOUS-TRAITANCE DE L\'ANNEE '.$ad.'</h2>';
$numeroannee=$ad;
}
//****************************************************************************//
//************************* PROBLEME A CE NIVEAU LA **************************//
//****************************************************************************//
//On crée un nouveau tableau à chaque nouvelle semaine de l'annnée en cours
echo '<h2>Semaine : '.$numsemaine.'/'.$annee.'</h2>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th scope="col" width="30%">DOSSIER</th>
<th scope="col" width="25%">SOUS-TRAITANT</th>
<th scope="col" width="25%">NATURE</th>
<th scope="col" width="10%">DELAI</th>
<th scope="col" width="10%">RECEPTION</th>
</tr>';
//****************************************************************************//
//********************* CONTROLE DE LA DATE DE RECEPTION *********************//
//****************************************************************************//
//Si la délai n'a pas été dépassé, on ne met pas de couleur
if ( date('U') <= ($datedelai) && $nbcde->datereception=="")
{
echo '
<tr align="center" valign="middle">';
}
else
{
//Si la date de réception a été entrée, on colorie la ligne en bleue
if ($nbcde->datereception != "")
{
echo '
<tr align="center" valign="middle" bgcolor="#84E6EC">';
}
//Sinon la date délai a été dépassée et on colorie la ligne en rouge
else
{
echo '
<tr align="center" valign="middle" bgcolor="#FF4A4A">';
}
}
//On affiche toutes les données concernant la commande de sous-traitance
//dans un tableau
echo '
<td><table width="90%" border="0" cellpadding="0" cellspacing="0">
<tr><td align="left" width="50%">'.$nbcde->nomcli.'</td>
<td align="right" width="50%">'.$nbcde->numcdecli.'</td></tr>
</table></td>
<td><table width="90%" border="0" cellpadding="0" cellspacing="0">
<tr><td align="left" width="50%">'.$nbcde->nomfrs.'</td>
<td align="left" width="50%">'.$nbcde->numcdefrs.'</td></tr>
</table></td>
<td>'.$nbcde->nature.'</td>
<td><b>'.$jd.'/'.$md.'/'.$ad.'</b></td>
<td valign="middle">';
//Si aucune date de réception n'a été entrée dans la base de données
//On affiche une case à cocher
if ($nbcde->datereception=="")
{
echo '
<form method="POST" action="index.php" name="form">
<input type="checkbox" name="datereception[]" value="'.$nbcde->numcdefrs.'">';
}
else //Sinon on affiche la date à laquelle la réception a été effectuée
{
// Décryptage de la date Unix
$idate = getDate($nbcde->datereception);
// Mise en forme de la date décryptée
$date = $idate['mday'] . "/" . $idate['mon'] . "/" . $idate['year'];
echo $date;
}
//Fermeture du tableau
echo '
</td>
</tr></table><br>';
}
J'ai essayé tout plein de contrôles, mais bon j'avais pas ce que je voulais Je désespère...Surtout que c'est pour mon stage de deuxieme année...
Merci d'avance ^^