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 :

Calendrier et base de données en relation


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Calendrier et base de données en relation
    Bonjour,

    Je souhaite utiliser un calendrier avec une base de données.

    Dans une table, j'ai des évènement avec des dates au format (jour/mois/année). Je souhaite mettre en rouge les dates du calendrier pour lesquelles il y a une date dans la base de données.

    Comment faire cela ?

    Voici un exemple de calendrier avec lequel je souhaite utiliser une base de données :

    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
     
    <?php
    $year = date("Y");
    if(!isset($_GET['month'])) $monthnb = date("n");
    else {
        $monthnb = $_GET['month'];
        $year = $_GET['year'];
        if($monthnb <= 0) {
            $monthnb = 12;
            $year = $year - 1;
        }
        elseif($monthnb > 12) {
            $monthnb = 1;
            $year = $year + 1;
        }
    }
    $day = date("w");
    $nbdays = date("t", mktime(0,0,0,$monthnb,1,$year));
    $firstday = date("w",mktime(0,0,0,$monthnb,1,$year));
     
    $daytab[1] = 'Lu';
    $daytab[2] = 'Ma';
    $daytab[3] = 'Me';
    $daytab[4] = 'Je';
    $daytab[5] = 'Ve';
    $daytab[6] = 'Sa';
    $daytab[7] = 'Di';
     
    $calendar = array();
    $z = (int)$firstday;
    if($z == 0) $z =7;
    for($i = 1; $i <= ($nbdays/5); $i++){
        for($j = 1; $j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays; $j++){
            if($j < $z && ($j-$z+1+(($i*7)-7)) <= 0){
                    $calendar[$i][$j] = null;
            }
            else {
                $calendar[$i][$j] = $j-$z+1+(($i*7)-7);            
            }
        }
    }
     
    switch($monthnb) {
        case 1: $month = 'Janvier'; break;
        case 2: $month = 'Fevrier'; break;
        case 3: $month = 'Mars'; break;
        case 4: $month = 'Avril'; break;
        case 5: $month = 'Mai'; break;
        case 6: $month = 'Juin'; break;
        case 7: $month = 'Juillet'; break;
        case 8: $month = 'Aout'; break;
        case 9: $month = 'Septembre';    break;
        case 10: $month = 'Octobre'; break;
        case 11: $month = 'Novembre';    break;
        case 12: $month = 'Décembre';    break;
    }
    ?>	
    <table>
            <tr>
                <th><span class="linkcal"><a href="calendrier.php?month=<?php echo $monthnb - 1; ?>&year=<?php echo $year; ?>"><<</a></span></th>
                <th colspan="5" class="headcal"><?php echo($month.' '.$year);  ?></th>
                <th><span class="linkcal"><a href="calendrier.php?month=<?php echo $monthnb + 1; ?>&year=<?php echo $year; ?>">>></a></span></th>
            </tr>
            <?php
                echo('<tr>');
                for($i = 1; $i <= 7; $i++){
                    echo('<th>'.$daytab[$i].'</th>');
                }
                echo('</tr>');
                for($i = 1; $i <= count($calendar); $i++) {
                    echo('<tr>');
                    for($j = 1; $j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays; $j++){                	                		   	                		                        echo('<th>'.$calendar[$i][$j].'&nbsp;&nbsp;</th>');
                    }
                    echo('</tr>');
                }
            ?>
    </table>
    Comment faire cela ?

    Merci de d'avance de votre aide.
    Bien amicalement.
    Vincent.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Recupère les dates de la base de donnée dans un tableau PHP.
    Ensuite quand tu construits ton calendrier, tu as juste a regarder si le jour que tu es en train de dessiner existe dans le tableau.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Recupère les dates de la base de donnée dans un tableau PHP.
    Ensuite quand tu construits ton calendrier, tu as juste a regarder si le jour que tu es en train de dessiner existe dans le tableau.
    Bonjour,

    Merci déjà pour votre réponse.

    Pourriez-vous s.v.p me montrer un exemple de ce que vous dites par rapport au calendrier mentionné ou un autre ?

    Merci d'avance de votre aide.
    Bien amicalement.
    Vincent.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Merci pour votre réponse mais je ne souhaite pas intégrer ajax.

    J'ai essayé comme mentionné dans les messages précédents de travailler avec un array mais sans succès.

    Pourriez-vous s.v.p me montrer un simple exemple utilisant une simple table avec des dates (jj/mm/aaaa) à comparer dans un tableau et permettre de les mettre en couleur dans le calendrier dont le code figure ci-dessus ?

    Merci d'avance de votre aide.
    Bien amicalement.
    Vincent.

  6. #6
    Membre confirmé
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Points : 616
    Points
    616
    Par défaut
    Moi j'ai développé une application de type agenda avec php et jquery(Javascript).
    Pour le calendrier le plugin fullCalendar.
    Maintenant, les événements sont enregistrés dans une base de données et recupéré dans le calendrier via json.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Bonjour à tous,

    Vous m'aviez déjà repondu sur le forum en spécifiant l'utisation d'un tableau.

    J'ai utilisé un foreach mais il met tout en couleur...

    Je suis bloqué sur ce ptit élément et parvient pas à trouver de solution....

    Cela serait sympa d'avoir un ptit coup de main ;-))

    Pourriez-vous me montrer comment résoudre cela...c'est sûrement assez court à mettre en place et cela me permettrait de progresser dans mon petit calendrier.

    Merci d'avance.
    ++
    Vincent.

  8. #8
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    commence par nous montrer ton code après on verra

Discussions similaires

  1. [MCD] Base de données sans relations d'un site web
    Par PierreBTSIG dans le forum Schéma
    Réponses: 10
    Dernier message: 14/05/2008, 15h53
  2. Elaboration base de donnée et relations
    Par mimydes dans le forum Access
    Réponses: 4
    Dernier message: 09/03/2007, 16h19
  3. [MySQL] Système de gestion avec calendrier et base de données
    Par almisuifre dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 14/12/2006, 23h08
  4. calendrier et base de données
    Par matclou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/02/2006, 14h49
  5. [VB.NET] [ADO.NET] Base de données et relations
    Par DotNET74 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 14/03/2005, 13h06

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