IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Réalisation d'un planning


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Réalisation d'un planning
    Bonjour voila j ai un petit probleme a vous expliquer.
    je désire faire un agenda mais j ai un soucis au niveau de la mise en page.
    voici le schema.

    Come vous pouvez le constater cela me recreer une ligne a chaque fois.
    ce que je veut en fait c 'est recreer une ligne que si le nom de la personne change.
    mais la le probleme c est que si la personne a plusieurs evenement dans la semaine ce me recreer une ligne a chaque évenement.
    Pouriez vous m'expliquer comment je pourai proceder.
    merci d avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
    //créations des jours de la semaine
    if(date('w')==1){ $l=date('d');$m=date('d')+1;$me=date('d')+2;$j=date('d')+3;$v=date('d')+4;} //lundi
    if(date('w')==2){ $l=date('d')-1;$m=date('d');$me=date('d')+1;$j=date('d')+2;$v=date('d')+3;} //mardi
    if(date('w')==3){ $l=date('d')-2;$m=date('d')-1;$me=date('d');$j=date('d')+1;$v=date('d')+2;} //mercredi
    if(date('w')==4){ $l=date('d')-3;$m=date('d')-2;$me=date('d')-1;$j=date('d');$v=date('d')+1;} //jeudi
    if(date('w')==5){ $l=date('d')-4;$m=date('d')-3;$me=date('d')-2;$j=date('d')-1;$v=date('d');} //vendredi
     
    //rempalcement des mois en lettre a partir de numéros.
    if(date('m')==1){ $mo='janvier';}
    if(date('m')==2){ $mo='février';}
    if(date('m')==3){ $mo='mars';}
    if(date('m')==4){ $mo='avril';}
    if(date('m')==5){ $mo='mai';}
    if(date('m')==6){ $mo='juin';}
    if(date('m')==7){ $mo='juillet';}
    if(date('m')==8){ $mo='aout';}
    if(date('m')==9){ $mo='septembre';}
    if(date('m')==10){ $mo='octobre';}
    if(date('m')==11){ $mo='novembre';}
    if(date('m')==12){ $mo='décembre';}
     
    //affichage du tableau.
    echo "<table id='heure' width='95%' cellpadding='2' cellspacing='2'>
     <tr  bgcolor='#99babf'>
     <td></td>
     <td colspan='2'>Lundi $l $mo</td><td colspan='2'>Mardi $m $mo</td><td colspan='2'>Mercredi $me $mo</td>
     <td colspan='2'>Jeudi $j $mo</td><td colspan='2'>Vendredi $v $mo</td></tr>
     <tr bgcolor='#e2f1f4'align='center'><td></td>
     <td>Matin</td><td>Apres-midi</td><td>Matin</td><td>Apres-midi</td><td>Matin</td><td>Apres-midi</td>
     <td>Matin</td><td>Apres-midi</td><td>Matin</td><td>Apres-midi</td></tr>";
     
    $sql = mysql_query("SELECT * FROM ddsv_planning");
    while($data = mysql_fetch_array($sql) ) {
     $balise="</td><td>";
     echo"<tr><td>";
    if($data['date']==$l){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$l){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$m){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$m){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$me){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$me){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$j){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$j){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$v){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$v){echo $data['contenu'];}
     echo "</td></tr>";
    }
    ?>

  2. #2
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    C'est un cauchemard ton truc.....

    Je sais bien que PHP est un pro des tableaux, mais à ce point là !!! Aille !!!!

    Je laisserai les autres réagir, parce que moi voir ca ca me donne la migraine....
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Une solution serait de faire deux requetes.

    La première récupère juste les noms ou ids, et la deuxième récupère l'emploi du temps en fonction du nom ou id récupéré dans la première, là tu pourras tester les dates et mettre en place ton planning

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je ne comprend pas trop ce que tu veut dire.En fait ce que je veut c'est mettre les disponibilitées de chaqun sur une seule ligne.
    comme ca:
    dupond --> absent ........ en réunion .......... ...........
    damish --> ------ ------ en réunion ------- --------
    et non comme ca:
    dupond --> absent ........ --------- .......... ...........
    dupond --> ------- ........ en réunion .......... ...........
    damish --> ------ ------ en réunion ------- --------
    merci de me venir en aide

    viviboss moi aussi ca me donne la migraine lol

  5. #5
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    et aussi, un léger effort sur le code serait possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(date('w')==1){ $l=date('d');$m=date('d')+1;$me=date('d')+2;$j=date('d')+3;$v=date('d')+4;} //lundi
     
    ...
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch (date('w')) {
    case 1 : // lundi
      $l=date('d');
      $m=date('d')+1;
      $me=date('d')+2;
      $j=date('d')+3;
      $v=date('d')+4;
      break;
    case 2 : // mardi
      ...
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(date('m')==1){ $mo='janvier';}
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    switch (date('m')) {
    case 1 :
      $mo='janvier';
      break;
    case 2 :
      ...
    ...
    dans la dernière partie tu répètes des conditions, j'comprends pas bien pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($data['date']==$l){echo $data['contenu'];}
     echo $balise;
    if($data['date']==$l){echo $data['contenu'];}
     echo $balise;
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    switch ($data['date']) {
    case $l :
      echo $data['contenu'] . $balise . $data['contenu'] . $balise;
      break;
    case $m :
      ...
    ...





    j'trouve ça quand même 'achement plus simple à lire et tu fais beaucoup de moins de comparaisons, algo largement moins coûteux
    Dia [ Page DVP ] [ Site pro ]

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben c'est exactement ce que je te proposais

    Tu récupères l'id de la personne et dans le while qui le récupère tu fais une nouvelle boucle de récupération suite à une requete qui récupère que l'évènement ordonné par date de manière ASC

    Ainsi tu as une seule ligne par personne et le reste est juste un test en fonction du jour pour l'affichage

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Tu va me prendre pour un lourd mais j ai du mal a comprendre j'ai jamais fait ce genre de choses.Pourai tu me faire un petit schema?
    et merci pour les dates c'est sur que ca fait plus propre et on s y retrouve mieu je vai suivre ton conseil.

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je ne connais pas tes tables mais on va supposer une table PERSO et une autre PLANNING.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //Requete de récupération des ids dans la table PERSO
    while($row = mysql_fecth_array($result))
    {
      echo $row['nom']; // Affiche le nom qui correspondra au planning sur une ligne
      //Requete de récupération du planning en fonction de $row['id']
      //et ordonné par date de manière ascendante dans la table PLANNING
      while($row2 = mysql_fecth_array($result2))
      {
         //test pour l'affichage des commentaires en fonction de la date
      }
    }

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu peux aussi tout faire en une fois.
    Traduction en pseudo-code :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Requête générale, triée par nom puis par date d'événement
    
    Boucle sur la requête
      Complète un tableau à 2 dimensions : $planning[nom][jour_semaine]=événement
    // exemple : $planning['damien]['mardi']='absent'
    // $planning['damien']['jeudi']='en réunion'
    
    Parcours du tableau des noms (foreach)
      Insertion d'une nouvelle ligne
      Vérification de la présence d'un jour (in_array)
        Oui => cellule + événement
        Non => cellule vide
    L'avantage, c'est que l'on fait tout avec une seule requête, quel que soit le nombre de noms.

Discussions similaires

  1. Réalisation d'un planning de RDV sous excel
    Par liseprachan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/10/2009, 00h46
  2. [MediaWiki] Réaliser une cartographie / plan d'un Wiki
    Par santiago68 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/12/2007, 19h26
  3. Réalisation d'un planning simple
    Par NooD dans le forum IHM
    Réponses: 26
    Dernier message: 16/09/2007, 00h14
  4. Réalisation d'un planning
    Par agoure dans le forum Modélisation
    Réponses: 1
    Dernier message: 11/07/2007, 17h57
  5. [SQL] Réalisation d'un planning en PHP et Sql
    Par Temp71 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/05/2007, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo