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 :

Décalage avec les cases d'un tableau pour étendre mes évènements


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut Décalage avec les cases d'un tableau pour étendre mes évènements
    Bonjour à tous,

    Je rencontre actuellement un souci sur une application de gestion de planning.
    Ma base contient des évènements qui ont entre autres, une date de début, une heure de début et de fin.

    Je génère un tableau avec 5 jours (en enlevant les week-end) et dans chaque colonne comme vous l'imaginez, j'ajoute mes évènements. Je place le départ de chaque évènements correctement mais quand j'essaye d'étendre la case sur plusieurs lignes avec un rowspan, je me retrouve avec un décallage somptueux...

    Plus tôt, on m'a dit qu'en fait, si j'ai bien compris, je crée plusieurs des td en trop... mais je sais pas trop trop comment gérer le problème...

    Est-ce que vous auriez une idée ?


    Voici mon code php me servant à construire mon tableau :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    for ($i=1; $i<=30; $i++) {
     
    echo "<tr><td class='heure'>".$heure_deb;
    if ($i%2) { echo ":00"; } else { echo ":30";}
     
    if ($heure_deb < 10) {
    $heure_debut = "0".$heure_deb;
    }
    else {
    $heure_debut = $heure_deb;
    }
     
    $heure_finplanning = $heure_fin;
     
    if ($i%2) {
      $heure_debut .=":00:00"; 
      $heure_finplanning .=":30:00"; 
    }
    else 
    {
      $heure_debut .=":30:00"; 
      $heure_finplanning +=1; 
      $heure_finplanning .=":00:00"; 
    }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events = mysql_query($sql);
      while ($event = mysql_fetch_assoc($events)) {
        if ($heure_debut == $event['heure_debut']) { 
          echo "<td class='type".$event['type']."' rowspan='2'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
        }
        else {
          echo "<td>";
        }
      }
     
      echo "</td><td";
      $events1 = mysql_query($sql1);
      while ($event1 = mysql_fetch_assoc($events1)) {
        if ($heure_debut == $event1['heure_debut']) { 
          echo " class='type".$event1['type']."'><strong>".$event1['nom_client']."</strong> (".$event1['designation'].")"; 
        }
        else {}
      }
     
      echo "</td><td";
      $events2 = mysql_query($sql2);
      while ($event2 = mysql_fetch_assoc($events2)) {
        if ($heure_debut == $event2['heure_debut']) { 
        echo " class='type".$event2['type']."'><strong>".$event2['nom_client']."</strong> (".$event2['designation'].")"; }
        else { }
      }
     
      echo "</td><td";
      $events3 = mysql_query($sql3);
      while ($event3 = mysql_fetch_assoc($events3)) {
      if ($heure_debut == $event3['heure_debut']) { 
      echo " class='type".$event3['type']."'><strong>".$event3['nom_client']."</strong> (".$event3['designation'].")"; }
      else {
     
      }
      }
     
      echo "</td><td";
      $events4 = mysql_query($sql4);
      while ($event4 = mysql_fetch_assoc($events4)) {
      if ($heure_debut == $event4['heure_debut']) { 
      echo " class='type".$event4['type']."'><strong>".$event4['nom_client']."</strong> (".$event4['designation'].")"; }
      else {
     
      }
      }
     
      echo "</td></tr>";
     
      if ($i%2) { } else { $heure_deb += 1; }
      }
    Je joins également deux screenshots de ce que ca donne.
    Merci

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Citation Envoyé par Chouller Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while ($event = mysql_fetch_assoc($events)) {
        if ($heure_debut == $event['heure_debut']) { 
          echo "<td class='type".$event['type']."' rowspan='2'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
        }
        else {
          echo "<td>";
        }
      }
     
      echo "</td><td";
    si tu as un rawspan, le tour suivant du while, il ne faut pas afficher de td :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while ($event = mysql_fetch_assoc($events)) {
        if ($heure_debut == $event['heure_debut']) { 
          echo "<td class='type".$event['type']."' rowspan='2'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")</td>";
          bla = true;
        }
        else {
          if (!bla) echo "<td></td>";
          bla = false;
        }
      }
     
      echo "<td"; //</td> incorporé ci-dessus
    Z.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Yes !

    Ca arrange le problème... Mais sachant que j'avais mis 2 pour les tests, mon rowspan peut des fois être plus grand vu qu'une heure c'est un rowspan de 2.
    Donc pour un rendez-vous de trois heures...

    Alors en fait, si je suis cette logique...
    il faut que je mette mon bla égal à mon rowspan...
    et que j'enleve un à chaque tour ?

    Ca pourrait marcher un truc comme ça ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Si ça intéresse quelqu'un.

    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
     
      $events = mysql_query($sql);
      while ($event = mysql_fetch_assoc($events)) 
      {
        if ($heure_debut == $event['heure_debut']) 
        { 
          echo "<td class='type".$event['type']."' rowspan='".$event['delai']."'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
          $bla = $event['delai'];
        }
        else 
        {
          if ($bla > 1) { $bla -=1; }
          else { echo "<td></td>"; }
        }
      }
    Ok ça roule.
    Merci merci beaucoup Z !


    Chou

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 124
    Par défaut
    Note à Zwiter, ta bidouille pourrait être correcte si on avait un colspan, mais la il s'agit d'un rowspan. Ici, il faut garder dans des variables la durée de l'événement par colonne pour savoir quand s'arrêter et décrémenter ces variables à chaque changement de 1/2 heure.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    $delai0 = 0;
    $delai1 = 0;
    $delai2 = 0;
    $delai3 = 0;
    $delai4 = 0;
    for ($i=1; $i<=30; $i++) {
      echo "<tr><td class='heure'>".$heure_deb;
      if ($i%2) { echo ":00"; } else { echo ":30";}
     
      if ($heure_deb < 10) { 
        $heure_debut = "0".$heure_deb;
      } else {
        $heure_debut = $heure_deb;
      }
    
      $heure_finplanning = $heure_fin;
     
      if ($i%2) {
        $heure_debut .=":00:00"; 
        $heure_finplanning .=":30:00"; 
      } else {
        $heure_debut .=":30:00"; 
        $heure_finplanning +=1; 
        $heure_finplanning .=":00:00"; 
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
    
      if ($delai0 > 1) {
        $delai0--;
      } else {
        $events = mysql_query($sql);
        $delai0 = 0;
        $tdmak = "<td>";
        $tdtext = "&nbsp;";
        while ($event = mysql_fetch_assoc($events)) {
            
          if ($heure_debut == $event['heure_debut']) { 
            $tdmak = "<td class='type".$event['type']."' rowspan='$event['delai']'>";
            $tdtext = "<strong>$event['nom_client']</strong>($event['designation'])";
            $delai0 = $event['delai'];
          }
        }
        echo $tdmak.$tdtext."</td>\n";
      }
    
      if ($delai1 > 1) {
        $delai1--;
      } else {
        $events = mysql_query($sql1);
        $delai1 = 0;
        $tdmak = "<td>";
        $tdtext = "&nbsp;";
        while ($event = mysql_fetch_assoc($events)) {
            
          if ($heure_debut == $event['heure_debut']) { 
            $tdmak = "<td class='type".$event['type']."' rowspan='$event['delai']'>";
            $tdtext = "<strong>$event['nom_client']</strong>($event['designation'])";
            $delai1 = $event['delai'];
            }
        }
        echo $tdmak.$tdtext."</td>\n";
      }
    
      . . .  
       
      echo "</tr>";
      
      if ($i%2) { } else { $heure_deb += 1; }
      }
    Maintenant, ça dépend aussi de ton ordre SQL, si tu peux récupérer plus de 1 événement dans $event = mysql_fetch_assoc($events) pour l'heure de début, tu vas créer plusieurs colonnes pour une journée, et c'est pas bon, non plus (d'autant que tu auras un cumul de délai), mais tu m'as dit que ça n'était jamais le cas, donc ça devrait être bon.

    Zut, trop tard ... ça m'apprendra à faire autre chose

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Bah, j'ai conscience que le système pourrait être plus évolutif...
    Mais cela ne fait pas partie du cahier vu qu'on gère le planning d'une seule personne. A ce moment là...

    Le don de non-ubiquité !
    ça me rappelle l'école

    Merci pour vos remarques et vos conseils.
    Résolu !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH...

    Bonjour à vous,

    On y étais presque !!!

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
     
    for ($i=1; $i<=30; $i++) {
     
    echo "<tr><td class='heure'>".$heure_deb;
    if ($i%2) { echo ":00"; } else { echo ":30";}
     
    if ($heure_deb < 10) {
    $heure_debut = "0".$heure_deb;
    }
    else {
    $heure_debut = $heure_deb;
    }
     
    $heure_finplanning = $heure_fin;
     
    if ($i%2) {
      $heure_debut .=":00:00"; 
      $heure_finplanning .=":30:00"; 
    }
    else 
    {
      $heure_debut .=":30:00"; 
      $heure_finplanning +=1; 
      $heure_finplanning .=":00:00"; 
    }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events = mysql_query($sql);
      while ($event = mysql_fetch_assoc($events)) 
      {
        if ($heure_debut == $event['heure_debut']) 
        { 
          echo "<td class='type".$event['type']."' rowspan='".$event['delai']."'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
          $bla = $event['delai'];
        }
        else 
        {
          if ($bla > 2) { $bla -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events1 = mysql_query($sql1);
      while ($event1 = mysql_fetch_assoc($events1)) 
      {
        if ($heure_debut == $event1['heure_debut']) 
        { 
          echo "<td class='type".$event1['type']."' rowspan='".$event1['delai']."'>";
          echo '<strong>';
          echo $event1['nom_client']."</strong> (".$event1['designation'].")";
          $bla1 = $bla + $event['delai'];
        }
        else 
        {
          if ($bla1 > 2) { $bla1 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events2 = mysql_query($sql2);
      while ($event2 = mysql_fetch_assoc($events2)) 
      {
        if ($heure_debut == $event2['heure_debut']) 
        { 
          echo "<td class='type".$event2['type']."' rowspan='".$event2['delai']."'>";
          echo '<strong>';
          echo $event2['nom_client']."</strong> (".$event2['designation'].")";
          $bla2 = $bla1 + $event2['delai'];
        }
        else 
        {
          if ($bla2 > 2) { $bla2 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events3 = mysql_query($sql3);
      while ($event3 = mysql_fetch_assoc($events3)) 
      {
        if ($heure_debut == $event3['heure_debut']) 
        { 
          echo "<td class='type".$event3['type']."' rowspan='".$event3['delai']."'>";
          echo '<strong>';
          echo $event3['nom_client']."</strong> (".$event3['designation'].")";
          $bla3 = $bla2 + $event3['delai'];
        }
        else 
        {
          if ($bla3 > 2) { $bla3 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events4 = mysql_query($sql4);
      while ($event4 = mysql_fetch_assoc($events4)) 
      {
        if ($heure_debut == $event4['heure_debut']) 
        { 
          echo "<td class='type".$event4['type']."' rowspan='".$event4['delai']."'>";
          echo '<strong>';
          echo $event4['nom_client']."</strong> (".$event4['designation'].")";
          $bla4 = $bla3 + $event4['delai'];
        }
        else 
        {
          if ($bla4 > 2) { $bla4 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td></tr>";


    Alors suite au précédent post, j'ai mis en place une condition sur 5 colonnes... le problème apparait quand plusieurs évènements à la même heure à des jours différents !!!!

    Je vous envoie une petit image...
    J'ai essayé de bidouiller ma condition mais je vois pas trop là...

  8. #8
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Je pense que avec ceci, ton code devrait fonctionner, avec la bonne initialisation de $bla :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ($heure_debut == $event['heure_debut']) 
        { 
          echo "<td class='type".$event['type']."' rowspan='".$event['delai']."'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
          $bla += $event['delai']; //ici la modif !!
        }
    Z.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Aie... C'est encore la dèche...
    C'est illisible !! Et mes évènements se balladent...

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
     
    for ($i=1; $i<=30; $i++) {
     
    echo "<tr><td class='heure'>".$heure_deb;
    if ($i%2) { echo ":00"; } else { echo ":30";}
     
    if ($heure_deb < 10) {
    $heure_debut = "0".$heure_deb;
    }
    else {
    $heure_debut = $heure_deb;
    }
     
    $heure_finplanning = $heure_fin;
     
    if ($i%2) {
      $heure_debut .=":00:00"; 
      $heure_finplanning .=":30:00"; 
    }
    else 
    {
      $heure_debut .=":30:00"; 
      $heure_finplanning +=1; 
      $heure_finplanning .=":00:00"; 
    }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events = mysql_query($sql);
      while ($event = mysql_fetch_assoc($events)) 
      {
    if ($heure_debut == $event['heure_debut']) 
        { 
          echo "<td class='type".$event['type']."' rowspan='".$event['delai']."'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
          $bla += $event['delai'];
        }
     
        else 
        {
          if ($bla > 2) { $bla -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events1 = mysql_query($sql1);
      while ($event1 = mysql_fetch_assoc($events1)) 
      {
        if ($heure_debut == $event1['heure_debut']) 
        { 
          echo "<td class='type".$event1['type']."' rowspan='".$event1['delai']."'>";
          echo '<strong>';
          echo $event1['nom_client']."</strong> (".$event1['designation'].")";
          $bla += $event1['delai'];
        }
        else 
        {
          if ($bla1 > 2) { $bla1 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events2 = mysql_query($sql2);
      while ($event2 = mysql_fetch_assoc($events2)) 
      {
        if ($heure_debut == $event2['heure_debut']) 
        { 
          echo "<td class='type".$event2['type']."' rowspan='".$event2['delai']."'>";
          echo '<strong>';
          echo $event2['nom_client']."</strong> (".$event2['designation'].")";
          $bla += $event2['delai'];
        }
        else 
        {
          if ($bla2 > 2) { $bla2 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events3 = mysql_query($sql3);
      while ($event3 = mysql_fetch_assoc($events3)) 
      {
        if ($heure_debut == $event3['heure_debut']) 
        { 
          echo "<td class='type".$event3['type']."' rowspan='".$event3['delai']."'>";
          echo '<strong>';
          echo $event3['nom_client']."</strong> (".$event3['designation'].")";
          $bla += $event3['delai'];
        }
        else 
        {
          if ($bla3 > 2) { $bla3 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events4 = mysql_query($sql4);
      while ($event4 = mysql_fetch_assoc($events4)) 
      {
        if ($heure_debut == $event4['heure_debut']) 
        { 
          echo "<td class='type".$event4['type']."' rowspan='".$event4['delai']."'>";
          echo '<strong>';
          echo $event4['nom_client']."</strong> (".$event4['designation'].")";
          $bla += $event4['delai'];
        }
        else 
        {
          if ($bla4 > 2) { $bla4 -=1; }
          else { echo "<td></td>"; }
        }
      }
     
      echo "</td></tr>";
     
      if ($i%2) { } else { $heure_deb += 1; }
      }

  10. #10
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($bla3 > 2) { $bla3 -=1; }
    Est ce que cette condition est valide ?
    A quelle valeur initialise tu $bla ?
    Z.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    J'ai essayé de cumuler au fur et à mesure qu'on avancait...
    donc j'ai crée en fait 5 bla... à cause de mes 5 jours que je cumule dans mon tableau...
    parce que ça a du sembler m'arranger à un moment donné...

    Je t'avoue que je suis plus sûr de rien...
    enfin de pas grand chose :'(

  12. #12
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Je pourrais avoir le contenu de ta requete de base de donnée, via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $out = array();
    while ($event = mysql_fetch_assoc($events) {
    	array_push($out, $event);
    	}
    echo serialize($out);
    die;
    Z.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    a:1:{i:0;a:14:{s:2:"id";s:1:"3";s:10:"nom_client";s:7:"16 mars";s:7:"contact";s:8:"Mr FINEL";s:9:"telephone";N;s:10:"date_debut";s:10:"2009-03-16";s:8:"date_fin";
    s:10:"2009-03-16";s:11:"heure_debut";s:8:"16:00:00";s:9:"heure_fin";s:8:"16:30:00";
    s:4:"type";s:1:"3";s:8:"briefing";s:0:"";s:10:"notes_post";s:0:"";s:6:"statut";
    s:1:"0";s:11:"designation";s:9:"Packaging";s:5:"delai";s:1:"2";}}

    ^o)

    Whaou !

  14. #14
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Je n'ai qu'un seul event pour une seule colonne.
    Comment traites tu les jours suivants ?
    Z.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Ce sont 4 autres colonnes...
    je sais pas si je comprends bien ta question...

  16. #16
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    J'ai jeté un coup d'oeil, et j'ai corriger 2-3 trucs.
    il te faudra remettre les while(fetch) que j'ai remplacer pour tester.
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <table border="1"><?php
     
    $in = unserialize('a:1:{i:0;a:14:{s:2:"id";s:1:"3";s:10:"nom_client";s:7:"16 mars";s:7:"contact";s:8:"Mr FINEL";s:9:"telephone";N;s:10:"date_debut";s:10:"2009-03-16";s:8:"date_fin";s:10:"2009-03-16";s:11:"heure_debut";s:8:"16:00:00";s:9:"heure_fin";s:8:"16:30:00";s:4:"type";s:1:"3";s:8:"briefing";s:0:"";s:10:"notes_post";s:0:"";s:6:"statut";s:1:"0";s:11:"designation";s:9:"Packaging";s:5:"delai";s:1:"2";}}');
    $in1 = unserialize('a:1:{i:0;a:14:{s:2:"id";s:1:"3";s:10:"nom_client";s:7:"16 mars";s:7:"contact";s:8:"Mr FINEL";s:9:"telephone";N;s:10:"date_debut";s:10:"2009-03-16";s:8:"date_fin";s:10:"2009-03-16";s:11:"heure_debut";s:8:"16:30:00";s:9:"heure_fin";s:8:"18:30:00";s:4:"type";s:1:"3";s:8:"briefing";s:0:"";s:10:"notes_post";s:0:"";s:6:"statut";s:1:"0";s:11:"designation";s:9:"Packaging";s:5:"delai";s:1:"4";}}');
    $in2 = unserialize('a:1:{i:0;a:14:{s:2:"id";s:1:"3";s:10:"nom_client";s:7:"16 mars";s:7:"contact";s:8:"Mr FINEL";s:9:"telephone";N;s:10:"date_debut";s:10:"2009-03-16";s:8:"date_fin";s:10:"2009-03-16";s:11:"heure_debut";s:8:"08:00:00";s:9:"heure_fin";s:8:"17:00:00";s:4:"type";s:1:"3";s:8:"briefing";s:0:"";s:10:"notes_post";s:0:"";s:6:"statut";s:1:"0";s:11:"designation";s:9:"Packaging";s:5:"delai";s:2:"18";}}');
     
    $heure_deb = 7;
    $bla = 0;
    $bla1 = 0;
    $bla2 = 0;
     
    for ($i=1; $i<=30; $i++) {
     
    echo "<tr><td class='heure'>".$heure_deb;
    if ($i%2) { echo ":00"; } else { echo ":30";}
     
    if ($heure_deb < 10) {
    $heure_debut = "0".$heure_deb;
    }
    else {
    $heure_debut = $heure_deb;
    }
     
    $heure_finplanning = $heure_fin;
     
    if ($i%2) {
      $heure_debut .=":00:00"; 
      $heure_finplanning .=":30:00"; 
    }
    else 
    {
      $heure_debut .=":30:00"; 
      $heure_finplanning +=1; 
      $heure_finplanning .=":00:00"; 
    }
     
      echo "</td>";
      /*vont rentrer ici tous les évènements du jour courant*/
      $events = mysql_query($sql);
      foreach ($in as $event) 
      {
    if ($heure_debut == $event['heure_debut']) 
        { 
          echo "<td class='type".$event['type']."' rowspan='".$event['delai']."'>";
          echo '<strong>';
          echo $event['nom_client']."</strong> (".$event['designation'].")";
    	  echo "</td>"; //ici, faut fermer ton td
          $bla += $event['delai'] - 1; //ici
        }
     
        else 
        {
          if ($bla) { $bla --; } //ici
          else { echo "<td>&nbsp;</td>"; } //ici, td deja fermé, mais avec un &nbsp; dans ta case, ca cellule n'est pas considerer vide, et son style est mieux dans certains navigateurs
        }
      }
     
      /*vont rentrer ici tous les évènements du jour courant*/
      $events1 = mysql_query($sql1);
      foreach ($in1 as $event1) 
      {
        if ($heure_debut == $event1['heure_debut']) 
        { 
          echo "<td class='type".$event1['type']."' rowspan='".$event1['delai']."'>";
          echo '<strong>';
          echo $event1['nom_client']."</strong> (".$event1['designation'].")";
    	  echo "</td>"; //ici, faut fermer ton td
          $bla1 += $event1['delai'] - 1; //ici
        }
     
        else 
        {
          if ($bla1) { $bla1 --; } //ici
          else { echo "<td>&nbsp;</td>"; } //ici, td deja fermé, mais avec un &nbsp; dans ta case, ca cellule n'est pas considerer vide, et son style est mieux dans certains navigateurs
        }
      }
     
     
      /*vont rentrer ici tous les évènements du jour courant*/
      $events2 = mysql_query($sql2);
      foreach ($in2 as $event2) 
      {
        if ($heure_debut == $event2['heure_debut']) 
        { 
          echo "<td class='type".$event2['type']."' rowspan='".$event2['delai']."'>";
          echo '<strong>';
          echo $event2['nom_client']."</strong> (".$event2['designation'].")";
    	  echo "</td>"; //ici, faut fermer ton td
          $bla2 += $event2['delai'] - 1; //ici
        }
     
        else 
        {
          if ($bla2) { $bla2 --; } //ici
          else { echo "<td>&nbsp;</td>"; } //ici, td deja fermé, mais avec un &nbsp; dans ta case, ca cellule n'est pas considerer vide, et son style est mieux dans certains navigateurs
        }
      }
     
     
      echo "</tr>";
     
      if ($i%2) { } else { $heure_deb += 1; }
      }
    ?>
    </table>
    Z.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Je sais pas comment t'as fait... enfin si je vois mais bon...
    J'aime pas les tableaux !!!!!!!!

    Merci beaucoup.
    J'ai rajouté juste cette condition juste avant le while

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if (mysql_num_rows($events) == 0) {
      echo "<td>&nbsp;</td>";
      }
    Cela me permet de remplir ma colonne quand aucun évènement n'est enregistré dans le jour...

    Merci beaucoup... Je peux recocher le résolu !
    et recommencer à avancer par la même occasion.

    Merci Monsieur Z. !

    Chou

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    GRRRRRRRR Mais c'est pas humain...
    je pensais que ça marchait ça !!
    Dès que je mets un deuxième évènements dans ma journée, c'est reparti pour un tour de cellule dans tous les coins !!!

    Il me décalle le deuxième évènement de lundi à mardi...
    :'(

  19. #19
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    et un évènement sur 2 jours, comment vas-tu le traiter.
    Il faut revoir completement la structure de ton code, peut etre aussi tes requetes sql, et prevoir tout ces cas des maintenant.
    Z.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Je voulais simplifier le truc au maximum quoi...

    Pour les évènements de 2 jours, je pensais tout simplement ajouter 2 évènements d'une journée... :'(
    ça craint ?

Discussions similaires

  1. [XL-2000] compteur et condition pour sélectionner les cases d'un tableau
    Par Rrrroh dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/08/2010, 21h04
  2. [MySQL] Afficher les valeurs d'un tableau pour des cases à cocher
    Par tiesto95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 17h45
  3. Problème avec les cases d'un groupe d'option.
    Par auriolbeach dans le forum Access
    Réponses: 2
    Dernier message: 01/10/2005, 08h33
  4. Pb avec les cases à cocher
    Par magic8392 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/03/2005, 17h49
  5. Pb avec les cases à cocher
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 03/03/2005, 14h44

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