begin process at 2012 05 30 12:34:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Divers

 > 

Creation d'un calendrier simple de congés avec Mysql...dernier soucis


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Creation d'un calendrier simple de congés avec Mysql...dernier soucis

vendredi 10 février 2006 à 11:59:13 | Creation d'un calendrier simple de congés avec Mysql...dernier soucis

stevethx27

Bonjour,

Je concois actuellement un calendrier hebdomadaire simple de congé pour ma boite.

Une simple base Mysql alimente le tableau
table planning : id, employé, date_debut_conge, date_fin_conge

Le script ci-dessous fonctionne trés bien seulement : si un employé a 2 jours de congés dans la semaine, la requete et le script renvoie 2 lignes pour ce même employé, ce qui fait pas pro.
Et là franchement ça fait 2 jours que je cherche car je ne suis pas un codeur professionel, et je commence à fatiguer sur le problème. Il doit y avoir une boucle à faire quelque part...mais ou ?

PS : le script est sans aucun doute trés mal codé...soyez indulgent merci 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans nom</title>
</head>
<body>
<table width="80%"  border="1" cellspacing="1" cellpadding="0" bordercolor="#000000">

<?php

include ("include/connect.inc.php");


function PendantPeriode($debut, $fin, $joura) {

  $tDebut = explode("/", $debut);
  $tFin   = explode("/", $fin);

  return( $joura >= mktime(0, 0, 0, $tDebut[1], $tDebut[0], $tDebut[2]) &&
          $joura < mktime(0, 0, 0, $tFin[1], $tFin[0]+1, $tFin[2]) );

}

$joursem = array('dimanche ','lundi ', 'mardi ', 'mercredi ', 'jeudi ', 'vendredi ','samedi ');

$annee=date('Y');
$jour=date('d');
$mois = date('m');

$numSemaine =date('W',mktime(0,0,0,$mois,$jour-6,$annee));

echo '<tr><td></td>';


echo 'Semaine : '.$numSemaine.' Année :'.$annee.'<br>';
$premierJanvier = mktime(1,0,0,1,1,$annee);
$jourPremierJanvier = date('w',$premierJanvier);
$timestamp1 = $premierJanvier+$numSemaine*7*24*3660;
$jour = date('w',$timestamp1);

for ($i=1;$i<=5;$i++) {
$timestamp = $timestamp1+($i-$jour)*24*3600;
$jour1 = date('w',$timestamp);
echo '<td>'.$joursem[$jour1].'';
echo date('d/m/y',$timestamp).'</td>';};
echo '</tr>';

    $query1="SELECT * FROM plan ORDER BY employe";
    $res1=mysql_query($query1);
     while ($requet1=mysql_fetch_object($res1))
      {

        echo '<tr><td>'.$requet1->employe.'</td>'; //affichage du nom dans la première colonne

        $timestamp = $timestamp1+(1-$jour)*24*3600;
        $jour1 = date('d/m/y',$timestamp);

        $timestamp2 = $timestamp1+(2-$jour)*24*3600;
        $jour2 = date('d/m/y',$timestamp2);

        $timestamp3 = $timestamp1+(3-$jour)*24*3600;
        $jour3 = date('d/m/y',$timestamp3);

        $timestamp4 = $timestamp1+(4-$jour)*24*3600;
        $jour4 = date('d/m/y',$timestamp4);

        $timestamp5 = $timestamp1+(5-$jour)*24*3600;
        $jour5 = date('d/m/y',$timestamp5);
      
       $query2="SELECT employe,date_debut_conge,date_fin_conge FROM plan WHERE employe='$requet1->employe' GROUP BY employe,date_debut ";
       $res2=mysql_query($query2);
       while ($requet2=mysql_fetch_object($res2));
        {

        echo PendantPeriode($requet1->date_debut_conge, $requet1->date_fin, $timestamp)? '<td>congé</td>' : '<td></td>';
        echo PendantPeriode($requet1->date_debut_conge, $requet1->date_fin, $timestamp2)? '<td>congé</td>' : '<td></td>';
        echo PendantPeriode($requet1->date_debut_conge, $requet1->date_fin, $timestamp3)? '<td>congé</td>' : '<td></td>';
        echo PendantPeriode($requet1->date_debut_conge, $requet1->date_fin, $timestamp4)? '<td>congé</td>' : '<td></td>';
        echo PendantPeriode($requet1->date_debut, $requet1->date_fin, $timestamp5)? '<td>congé</td>' : '<td></td>';
        }

        echo '</tr>'; //fin de la ligne de l'utilisateur
}


?>
</td>
</tr>
</table>
</body>
</html>

vendredi 10 février 2006 à 15:53:49 | Re : Creation d'un calendrier simple de congés avec Mysql...dernier soucis

malalam

Administrateur CodeS-SourceS
Hello,

ben c'est normal? A toi de parser si tu as pmlusieurs congés ? Que voudrais-tu faire au juste ?


vendredi 10 février 2006 à 17:05:35 | Re : Creation d'un calendrier simple de congés avec Mysql...dernier soucis

stevethx27

Eh bien, je voudrais qu'au lieu d'afficher 2 lignes de congés pour un utilisateur, ça ne m'affiche qu'une seule ligne. Je m'explique :

par exemple j'ai 2 entrées dans ma base

 

Entrée 1

Utilisateur : utilisateurA

Date_debut_conge : 06/02/06

Date_fin_conge : 06/02/06

 

Entrée 2

Utilisateur : utilisateurA

Date_debut_conge : 08/02/06

Date_fin_conge : 09/02/06


Dans mon cas, le script affiche :
  Lundi6 Mardi 7 Mercredi 8 Jeudi 9 Vendredi 10
utilisateurA congé        
utilisateurA     congé congé  


Et je voudrais qu'il m'affiche :
  Lundi6 Mardi 7 Mercredi 8 Jeudi 9 Vendredi 10
utilisateurA congé   congé congé  

C'est ceci que je n'arrive pas à faire...
mardi 15 juillet 2008 à 19:53:52 | Re : Creation d'un calendrier simple de congés avec Mysql...dernier soucis

krma

Bonsoir, en fait ce code est super, mais j'essaie de l'adapter pour un planning de cours et en reprenant ton code, mes employés Maurice et Robert ne sont jamais en congés ! J'ai corrigé les petits oublis : $requet1->date_debut_conge, $requet1->date_fin_conge, $timestamp5... il manquait parfois _ conge dans les conditions et la requete.
En tout cas, si tu as depuis, résolu ton probleme, j'avoue que je serai très interessé par ton code, si ça ne t'ennuie pas trop.
Merci

Be Good...
vendredi 18 juillet 2008 à 08:18:12 | Re : Creation d'un calendrier simple de congés avec Mysql...dernier soucis

stevethx27

Bonjour,
En fait j'ai laissé tombé ce code faute d'autres projet plus important.

Mais je sais qu'un jour ou l'autre je vais en avoir besoin donc j'y replongerai sans doute. J'ai observé vos modifs mais n'en ai pas vérifié les effets...voit-on toujours apparaitre dans le cas mentionné au début du post ?

vendredi 18 juillet 2008 à 11:29:45 | Re : Creation d'un calendrier simple de congés avec Mysql...dernier soucis

krma

Bonjour, merci pour votre réponse. En fait, je vais paraitre idiot, mais chez moi, rien ne s'affiche. Je suppose que ça vient de la table.. J'ai mis un champ DATE au format Y:d:m essayé toutes les permutations pour que les date_debut_conge et date_fin_conge correspondent au format de votre fonction mais sans succès.
C'est un détail mais si à l'occasion vous pouviez me dire sous quelle forme est votre champ date dans la BDD :-), je pense que ça vient de là.
Pour le fait de n'afficher qu'un seul row par employé, on m'a conseillé, sur d'autres forums, d'éviter les boucles dans les boucles et de bosser plutot la requete (la rendre plus complete et donc, plus complexe), alors que pour une tableau multidimensionnel, on a pas trop le choix. Personne n'a vraiment pu m'aider et je n'ai trouvé aucun planning hebdomadaire existant digne de ce nom.
Du coup (je raconte ma vie), j'ai opté pour un masque de saisie par heure de la journée, comprenant un champ par jour de la semaine. Je peux afficher mes cours (ou conges) dans les bonnes cases en bouclant sur $heure (8h, 9h, 10h...) et en triant par $jour, mais c'est évidemment bien moins puissant que votre code, puisqu'on est obligé de renseigner chaque jour de la semaine (7 fois le meme masque de saisie et on boucle par groupe de 7 pour changer d'heure la ligne en dessous).
En tout cas, vu que personne ne semble avoir déjà cpdé qque chose d'approchant, je pense que vous tenez un truc là !
Je regrette de n'avoir pas le niveau pour optimiser votre fonction, que je me suis permis de montrer à des amis plus doués, et personne n'a pu me donner la soluce...
J'y ai passé 3 jours et je suis sur que c'est la bonne piste (la votre), il manque un détail qui m'échappe encore mais si jamais vous trouvez (ou moi), on se tient au courant parce qu'il est vraiment énorme votre tableau !

Be Good...


Cette discussion est classée dans : fin, date, echo, debut, requet1


Répondre à ce message

Sujets en rapport avec ce message

HELP !!!!! pb de variable je pensse [ par mickey180 ] Boujors à tous.Je suis nouveau dans le monde du PHP et j'ai un petit pb avec une de mes page.EXPLICATION : Cette page fait partie d'un intranet et doi aide variable formulaire [ par jeanmed ] BonjourJ?aurais besoin d aide sur un script php. Je m?explique, j ai une base donnée avec 4 informations une id un titre et un lien image et un commen saisir une date de debut, un date de fin et afficher ce qu'il s'est passé entre les 2.... [ par 3xodius55 ] bonjour, je crois pas qu'on aurait pu choisir un titre aussi nul... veuillez m'en excuser. comme j'ai essayé de le dire dans ce dernier, mon problè astro [ par SA7BOOCH ] Bonjour tou !!!le monde j'ai besoin de connaitre le signe d'horoscope d'une personne à partir de la date de naissaince mais j'ai pas trouvé une foncti Date plus finplus grande que la date de debut [ par cyberastuces ] Bonjour a tousJe cherche une solution pour savoir si la date de fin et bien superieure a cette du debut exemple date debut 10/10/2006date fin 10/12/20 Pb requete pour creation d'un agenda [ par aureludo ] Bonsoir,Je suis en train de créer un script qui va enregistré les évenemetn sur mon site, et j'ai un petit problème du moins je ne vois comment faire pb Systeme de reservation de salles en php mysql [ par ed1982 ] Bonjour,Je dois programmer un systeme de reservation de salle de reunion. Pour l instant je ne me contente que d une seule salle. Je veux pouvoir a pa probleme passage entre les annees [ par nader19 ] salut  . je galere depuis logntemps dans un projet et quand j'ai cru ça termine je tombe sur un beugbref mon beug cette fois çi j'ai decovert c'est pa afficher les dates d'une date de début a une date de fin [ par laura1409 ] bonjourje suis en train de réaliser un site internet en php qui permet la gestion de planning de formationje travaille en ce moment sur la mise en for Affichage page par page [ par McGyver59 ] Bonjour Voila j'ai recupéré un script de livre d'or avec insertion des message dans un fichier txt. Je l'adapte a mon site jusque la touva bien. le p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,462 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales