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


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut Calendrier
    Bonjour à tous !
    Je travaille depuis quelques temps sur un calendrier

    En fait, je ne comprends pas vraiment le code qui génère le calendrier (je le remets en bas de mon message) ; du coup je ne suis pas capable de voir ce qui donne le nom du mois en cours. Par ailleurs, je ne sais pas sélectionner des enregistrements pour lesquels la date (qui est bien au format DATE de MySQL dans ma petite base) inclus un mois qui est le même que le mois affiché dans le calendrier.
    Désolé, c'est sans doute une question très simple, mais je suis archi débutant en PHP et MySQL !
    Merci d'avance pour votre aide !!!

    Voici le code du calendrier. Il était lié par l'auteur du message de départ de ce sujet :
    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
    <?php
    //Creating general vars
    $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));
     
    //Replace the number of the day by its french name
    $daytab[1] = 'Lu';
    $daytab[2] = 'Ma';
    $daytab[3] = 'Me';
    $daytab[4] = 'Je';
    $daytab[5] = 'Ve';
    $daytab[6] = 'Sa';
    $daytab[7] = 'Di';
     
    //Build the calendar table
    $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);            
            }
        }
    }
     
    //Replace the number of the month by its french name
    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 = 'Août'; break;
        case 9: $month = 'Septembre';    break;
        case 10: $month = 'Octobre'; break;
        case 11:    $month = 'Novembre';    break;
        case 12:    $month = 'Décembre';    break;
    }
    ?>
    <div id="calendrier">
        <table>
            <tr>
                <th><span class="linkcal"><a href="index.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="index.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++){
                        if($j-$z+1+(($i*7)-7) == date("j") && $monthnb == date("n") && $year == date("Y")) 
                        	echo('<th class="current">'.$calendar[$i][$j].'</th>');
                        else 
                        	echo('<th class="jour">'.$calendar[$i][$j].'</th>');
                    }
                    echo('</tr>');
                }
            ?>
        </table>
    </div>

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Bonsoir à tous !
    J'ai bien avancé ! J'aurais dû penser à chercher en anglais, j'ai trouvé comment récupérer les éléments d'un moi
    J'arrive aussi à récupérer les deux chiffres du jour, avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $jour_event = substr($cemois['event_date'], 8, 2);
    .
    Mais j'ai quand même un problème ! Voici un gros bout de 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
    $event_mois = mysqli_query($lien, "SELECT * FROM events WHERE YEAR(event_date) = '$a' AND MONTH(event_date) = '$m' ORDER BY event_date");
     
    while ($ligne = mysqli_fetch_array($event_mois))
    {
    	$cemois[] = array('event_date' => $ligne['event_date'],
    				'event_descr'  => $ligne['event_descr']);
    }
    foreach ($cemois as $ce_mois):
    	$jour_event = substr($cemois['event_date'], 8, 2);
    	echo '<i>' . $jour_event . '</i><br>';
     
    	while ($ligne = mysqli_fetch_array($event_mois))
    	{
    		$jour_event_mois[$jour_event] = $ligne['events.id'];
    	}
    	foreach ($jour_event_mois as $jour_mois):
    		echo $jour_mois;
    	endforeach;
    	echo $ce_mois['event_date'] . '<br>';
    endforeach;
    Or la ligne "echo $jour_mois;", bah elle echo rien du tout Et je ne comprends pas
    C'est justement là que j'essaie ce qui a été dit plus haut
    Je précise à tout hasard que je fais mes tests $a = 2011 et $m= 05 (c'est-à-dire : ce mois-ci) et que j'ai deux évènements (enregistrements de la table "events") pour ce mois.
    Merci d'avance si vous pouvez m'aider !

  3. #3
    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
    Enlève les guillemets et utilise bien l'entier 5 et non une chaine '05'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $event_mois = mysqli_query($lien, "SELECT * FROM events WHERE YEAR(event_date) = $a AND MONTH(event_date) = $m ORDER BY event_date");

Discussions similaires

  1. Utilisation d'un calendrier (Contrôle ActiveX)
    Par MultiClic dans le forum IHM
    Réponses: 40
    Dernier message: 12/07/2006, 16h11
  2. disparition activeX calendrier
    Par djool dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2005, 13h31
  3. [toFAQ]calendrier perpetuel
    Par philippe_jasmin dans le forum C
    Réponses: 17
    Dernier message: 22/04/2003, 20h04
  4. Delphi et XMLRAD pour un calendrier
    Par Toxine77 dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/01/2003, 14h56
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 22h29

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