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

Langage PHP Discussion :

Affichage emploi du temps


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Par défaut Affichage emploi du temps
    Bonjour à tous j'ai vraiment besoin d'aide je galère pas mal et m'excuse si je suis dans la mauvaise section.
    Alors en gros je voudrais afficher un emploi du temps comme celui-ci :sans l'heure affiché sur les cours mais je voudrais afficher la date du jour avec le jour.





    Pour le moment voici ce que j'ai rédigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $bdd->exec("CREATE TABLE addtable (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    dpt varchar(250) NOT NULL,
    cours varchar(250) NOT NULL,
    matiere varchar(250) NOT NULL,
    salle varchar(250) NOT NULL,
    heure_debut varchar(250) NOT NULL,
    heure_fin varchar(250) NOT NULL,
    date DATE);");
    $bdd->exec("INSERT INTO addtable (id, dpt, cours, matiere, salle, heure_debut, heure_fin, date) VALUES (47, 'Informatique', 'TP', 'Programmation web 1', 'G310', '8:00', '9:00', '20-01-2021'),(48, 'Mathématiques', 'TD', 'Mathématiques 1', 'P14', '10:00', '12:00 ', '23-01-2021'),(50, 'Sciences de la vie et de la Terre', 'CM', 'Sciences de la vie et de la terre 1', 'S25', '13:00', '14:00', '09-09-2021'),(51, 'Physique-Chimie', 'TP', 'Programmation web 1', 'G110', '14:00', '15:00', '18-09-2021'),
    (52, 'Informatique', 'TD', 'Algorithme et programmation 1', 'D101', '15:00', '17:00', '20-09-2021'),
    (53, 'Mathématiques', 'CM', 'Mathématiques 2', 'S19','8:00', '10:30', '01-09-2021');");

    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
    $query = ("SELECT * FROM addtable ");
    $res = $bdd->query($query);
    $jours = array(null, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi");
    echo "<div class='container'><table width='' class='table table-bordered' style='text-align:center;' border='1' >
    <tr><th></th>";
    for($x = 1; $x < 6; $x++){
    echo "<th>".$jours[$x]."</th>";
    }
    echo "</tr>";
    for ($heure = 8; $heure <= 18; $heure++) {
    echo "<tr>";
    $heure_aff = $heure;
    if(strlen($heure_aff) <= 2) {
    echo "<td style=\"width:3%; vertical-align:top; text-align:right; background:#CCCCCC; font-weight: bold; \">";
    echo $heure_aff;
    echo "h00";
    echo "</td>";
    }
    for($d = 0; $d < 5; $d++){
    $date_num = date("d-m-Y", mktime(0, 0, 0, 1, 20+$d, 2021));
    echo "<td style=\"padding:10px 5px 10px 5px; border:1px solid #999999;\">";
    $date_lecon = $heure.":00 ".$date_num;
    while($row = $res->fetch()){
    if($date_lecon == $row['heure_debut']." ".$row['date']){
    $rdv = $row['cours']."<br>".$row['matiere']."<br>".$row['salle'];
    echo $rdv;
    }
    }
    echo "</td>";
    }
    echo "</tr>";
    }
    echo "</table>";

    la sortie acutelle:



    Mais tout s'affiche dans la première cellule, peu importe le code ça ne prend pas en compte le if ou je compare la date de la case avec celui de ma table alors que pourtant si je echo $date_lecon juste avant le while toutes les cases sont bien rempli avec par exemple: "8:00 2401-2021" juste en dessous "9:00 24-01-2021" (sans guillemets) et ainsi de suite jusqu'au vendredi derniere cellule guillements comme ceci:

    Nom : Capture d’écran du 2021-03-26 21-46-51.png
Affichages : 289
Taille : 57,9 Ko

    Merci d'avance et par pitié aidez-moi !

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 719
    Par défaut
    je viens de tester votre code et je vois l'élément 47 le lundi et l'élément 48 le jeudi à 10 h 00.

    j'ai une remarque au sujet de la 1re image que vous montrez, il y a des cases qui commencent à 10 h 15 ou 08 h 45 mais avec ce code, vous pouvez seulement montrer des cours qui commencent à heure pile. est ce que c'est bien ce que vous souhaitez faire ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Par défaut
    Comment cela se fait-il ? Les éléments s'affichent que le lundi et rien d'autre pour ma part ?

    Non non je veux bien afficher que des heures piles, j'ai déjà assez de mal comme ça pour le moment

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 719
    Par défaut
    je viens de voir que sur l'image la date commence le 20 septembre 2021 mais dans le code ça commence le 20 mars 2021. donc les images ne correspondent pas au code que vous nous montrez.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Par défaut
    Janvier vous voulez dire ? Oui j'avais fait d'autre essaie pour vérifier si ça allait s'afficher ailleurs ou uniquement dans la première cellulle. QUoi qu'il en soit je rentre bien 6 fois dans le while (mais 6 fois dnas la première cellule) et uniquement 1 fois dans le fi....

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Par défaut
    J'ai finalement résolu le problème en modifiant le code:


    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
    $query = ("SELECT * FROM addtable ");
    $res = $bdd->query($query);
    $rows = $res->fetchAll();// ICI !!!
    $jours = array(null, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi");
    echo "<div class='container'><table width='' class='table table-bordered' style='text-align:center;' border='1' >
    <tr><th></th>";
    for ($x = 1; $x < 6; $x++) {
      echo "<th style='text-align:center; background:#CCCCCC;'>".$jours[$x]."</th>";
    }
    echo "</tr>";
    for ($heure = 8; $heure <= 18; $heure++) {
      echo "<tr>";
      $heure_aff = $heure;
      if (strlen($heure_aff) <= 2) {
        echo "<td style=\"width:3%; vertical-align:top; text-align:center; background:#CCCCCC; font-weight: bold; \">";
        echo $heure_aff;
        echo "h00";
        echo "</td>";
      }
     
      for ($d = 0; $d < 5; $d++) {
        $date_num = date("d-m-Y", mktime(0, 0, 0, 1, 20 + $d, 2021));
        echo "<td style=\"padding:10px 5px 10px 5px; border:1px solid #999999;\">";
        $date_lecon = $heure.":00 ".$date_num;
        foreach ($rows as $row) {
          if ($date_lecon == $row['heure_debut']." ".$row['date']) {
            $rdv = $row['cours']."<br>".$row['matiere']."<br>".$row['salle'];
            echo $rdv;
          }
        }
        echo "</td>";
      }
      echo "</tr>";
    }
    echo "</table>";

    mais quand j'ai un créneau 2 heures le problème c'est qu'il ne s'affiche que dans une cellule :/

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2015, 12h26
  2. Réponses: 3
    Dernier message: 10/04/2015, 16h19
  3. [MySQL] Affichage d'emploi du temps
    Par abinakdane dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/04/2015, 13h45
  4. creer un emploi du temps hebdomadaire
    Par tibiurs dans le forum Access
    Réponses: 6
    Dernier message: 21/12/2005, 18h53
  5. Quelle base de données pour un emploi du temps
    Par edouard21 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 26/10/2005, 22h48

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