$req = "SELECT * FROM cdefrs,cdecli,client,fournisseur "
."WHERE reffrs=idfrs AND refcdecli=idcdecli AND refcli=idcli "
."ORDER BY datedelai DESC";
$res = $bd->execRequete ($req); //fonction qui exécute la requête
$i=0;//On initialise i à 0
while ($nbcde = $bd->objetSuivant($res)) //correspond à mysql_fetch_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
//Si l'année XXXX n'est pas déjà affichée, on l'affiche
if ($i != $ad)
{
echo 'PLANNING DE SOUS-TRAITANCE DE L\'ANNEE '.$ad.'
';
$i=$ad;
}
//On crée un nouveau tableau à chaque nouvelle semaine de l'annnée en cours
echo 'Semaine : '.$nbcde->refsem.'/'.$annee.'
//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);
//Si la délai n'a pas été dépassé, on ne met pas de couleur
if ( date('U') <= ($datedelai) && $nbcde->datereception==\"\")
{
echo '
----
';
}
else
{
//Si la date de réception a été entrée, on colorie la ligne en bleue
if ($nbcde->datereception != \"\")
{
echo '
----
';
}
//Sinon la date délai a été dépassée et on colorie la ligne en rouge
else
{
echo '
----
';
}
}
//On affiche toutes les données concernant la commande de sous-traitance
//dans un tableau
echo '
<table width="90%" border="0" cellpadding="0" cellspacing="0">
----, '.$nbcde->nomcli.'</td>
'.$nbcde->numcdecli.'
</td>
<td>'.$nbcde->nomfrs.',
'.$nbcde->numcdefrs.'
</td>
<td>'.$nbcde->nature.'</td>
<td>'.$jd.'/'.$md.'/'.$ad.'</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">
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;
}
echo '
</td>
</tr></table>
';
}
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 ^^
A voir également:
Problème d'affichage pour une gestion de relance de commandes
lefreeman42
Messages postés28Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention15 juin 2006 1 févr. 2006 à 10:24
Finalement j'ai réussi à obtenir le résultat que je voulais
$bd = Connexion (NOM, PASSE, BASE, SERVEUR);
//****************************************************************************//
//*************************** AFFICHAGE DU FORMULAIRE ************************//
//****************************************************************************//
//Requête permettant d'avoir toutes les données nécessaires sur une commande de
//sous-traitance
$requete="SELECT * FROM cdefrs,cdecli,client,fournisseur "
."WHERE reffrs=idfrs AND refcdecli=idcdecli AND refcli=idcli "
."ORDER BY datedelai DESC";
$resultat=$bd->execRequete($requete);
// Je t'explique un peu le plus le code
// afin que tu puisses l'adapter à ton cas
//
// Initialisation des variables
$sauvannee="";
$sauvsemaine="";
//
// Tant que ce n'est pas la fin du fichier
while($nbcde=$bd->objetSuivant($resultat)) //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
$semaine=date('W',$datedelai);
//Récupération de l'année calculé à partir du timestamp
//de la date delai
$an=date('Y',$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 ( ($semaine==53 && $jd==1 && $md==1) or ($semaine==52 && $jd==1 && $md==1) )
{
$semaine='01';
}
elseif ( ($semaine==53 && $jd==2 && $md==1) or ($semaine==52 && $jd==2 && $md==1) )
{
$semaine='01';
}
elseif ( ($semaine==53 && $jd==3 && $md==1) or ($semaine==52 && $jd==3 && $md==1) )
{
$semaine='01';
}
// Nouvelle semaine ?
// si ce n'est pas égal c'est que c'est une nouvelle semaine
if(($semaine!=$sauvsemaine)||($an!=$sauvannee))
{
// est-ce le premier ? si oui, afficher le total du précédent que l'on finit
if($sauvsemaine)
echo "</td></tr></table>";
// Nouvelle année ?
// si ce n'est pas égal c'est que c'est une nouvelle année
if($an!=$sauvannee)
{
// si ce n''est pas la première, alors afficher la fin de celle que l'on finit
if($sauvannee)
echo "";
// et afficher le début de la nouvelle famille
echo "PLANNING DE SOUS-TRAITANCE DE L'ANNEE ".$an."
";
// stocker cette nouvelle famille pour comparaison future
$sauvannee = $an;
//$sauvsemaine="";
}
// afficher la nouvelle semaine
echo 'Semaine : '.$semaine.'/'.$annee.'
DOSSIER |
SOUS-TRAITANT |
NATURE |
DELAI |
RECEPTION |
';
// sauvegarder cette nouvelle semaine pour comparaison future
$sauvsemaine = $semaine;
}
//****************************************************************************//
//********************* 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 '
----
';
}
else
{
//Si la date de réception a été entrée, on colorie la ligne en bleue
if ($nbcde->datereception != \"\")
{
echo '
----
';
}
//Sinon la date délai a été dépassée et on colorie la ligne en rouge
else
{
echo '
----
';
}
}
//On affiche toutes les données concernant la commande de sous-traitance
//dans un tableau
echo '
<table width="90%" border="0" cellpadding="0" cellspacing="0">
----, '.$nbcde->nomcli.'</td>
'.$nbcde->numcdecli.'
</td>
<td>'.$nbcde->nomfrs.',
'.$nbcde->numcdefrs.'
</td>
<td>'.$nbcde->nature.'</td>
<td> '.$jd.'/'.$md.'/'.$ad.' </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">
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;
}
}
//On affiche le bouton valider et la légende pour bien comprendre à quoi
//correspondent les couleurs. Cependant ce n'est pas très utile.
echo ' </td><table>
</form>
';
//****************************************************************************//
//*********************** FIN AFFICHAGE DU FORMULAIRE ************************//
//****************************************************************************//