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 :

[Dates] probleme avec mon => IF ()


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Points : 31
    Points
    31
    Par défaut [Dates] probleme avec mon => IF ()
    bonjour a tous, je suis débutant et je cherche un peu d'aide pour m'expliquer un truc.

    voila donc j'ai fait sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (('10' > $mois && $jour > '5') and ($mois < '12' && $jour< '20') ){
    					echo 'message';
    				}
    j'a une calendrier sur lequel je doit montrer un truc sur une période donné,
    dans mon exemple et pour teste les dates sont inclus.

    je n'arrive pas a faire se que je cherche a faire.
    par exemple faire que sa n'indique rien entre le 5/12 au 10/12 ou 05/10 au 25/12.

    avez vous une idée ?

  2. #2
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Ben déjà là ton mois c'est que le 11.
    Et ton jour c'est du 6 au 19.

    De plus le and heu ... ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($mois > '10' && $mois < '12' && $jour > '5' && $jour< '20' )
    serait plus correct

  3. #3
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    De plus le and heu ... ???
    AND est une syntaxe correcte où est le problème.

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 522
    Points : 282
    Points
    282
    Par défaut
    Je me pose une grande question mais ca fait longtemps que je n'ai plus fait de php aussi...
    pour moi ca signifi que que tu essaies de comparer $mois à la chaine '10' ce qui en soit ne veut rien dire. Si tu veux la comparer avec la valeur 10, ce serait plutot $mois > 10

    Pour les opérations sur les dates, va voir du cote de la fonction date() ^^
    5/12 au 10/12 ou 05/10 au 25/12.
    C'est bien un ou que tu veux et pas un et non? Si tu mets un ET, l'intervalle ce sera du 5/12 au 10/12...

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par weldoo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (('10' > $mois && $jour > '5') and ($mois < '12' && $jour< '20') ){
    					echo 'message';
    				}
    Pour ce que tu veux faire en utilisant les mois et les jours(du 5/10 au 25/12, le 5/12 au 10/12 est compris dedans), je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if  (($mois == "10" && $jour > "5") or ($mois = "11") or ($mois == "12"  && $jour< "25")) {
    					echo 'message';
    				}
    sinon avec d'autres fonctions on doit faire plus simple et plus "universel"

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    alors peut etre que je dis une connerie mais ton mois ce n est pas une chaine de caractere

    Alors essaye de le faire sans les ' ou les "

    Et normalement ca devrait marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ((10 > $mois && $jour > 5) and ($mois < 12 && $jour< 20) ){

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Points : 31
    Points
    31
    Par défaut ...
    oui c'est une l'intervalle entre deux date.
    exemple : 5/12 au 10/12

    pour parler plus, voila le type 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
    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
     
    <?php
    // recuperation du jous, mois, et année actuel
    $jour_actuel = date("j", time());
    $mois_actuel = date("m", time());
    $an_actuel = date("Y", time());
    $jour = $jour_actuel;
     
    // si la variable mois n'existe pas, mois et année correspondent au mois et à l'année courante
     
    if (isset($_GET["mois"]))
    {$mois=$_GET["mois"];}
    else{$mois = $mois_actuel;}
    if (isset($_GET["an"]))
    {$an=$_GET["an"];}
    else{$an = $an_actuel;}
     
     
     
    //defini le mois suivant 
    $mois_suivant = $mois + 1;
    $an_suivant = $an;
    if ($mois_suivant == 13)
    {
    	$mois_suivant = 1;
    	$an_suivant = $an + 1;
    }
     
    //defini le mois précédent
    $mois_prec = $mois - 1;
    $an_prec = $an;
    if ($mois_prec == 0)
    {
    	$mois_prec = 12;
    	$an_prec = $an - 1;
    }
     
    //affichage du mois et de l'année en french
    $mois_de_annee = array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Decembre");
    $mois_en_clair = $mois_de_annee[$mois - 1];
    // creation d'un tableau à 31 entrée (1 pour chaues jours) et on dit qu'aucuns jours n'est resevé
    for($j = 1; $j < 32; $j++){
    $tab_jours[$j] = (bool)false;
    }
    // connexion à la bdd
    include("config.inc.php");
    $connect = mysql_connect($hote, $user, $password);
    mysql_select_db($base, $connect);
     
    $requete = mysql_query("SELECT * FROM calendrier1 WHERE YEAR(jour) = $an	AND MONTH(jour) = $mois");
    while ($ligne = mysql_fetch_array($requete)){
    	// recupartion du jour ou il y a la reservation
    	$jours = $ligne["jour"];
    	echo $jours;
    	// transforme aaaa/mm/jj en jj
    	$jour_reserve = (int)substr($jours, 8, 2);
    	// insertion des jours reservé dans le tableau
    	$tab_jours[$jour_reserve] = (bool)true;	
    }
    mysql_close($connect);
    //Détection du 1er et dernier jour du moiS
    $nombre_date = mktime(0,0,0, $mois, 1, $an);
    $premier_jour = date('w', $nombre_date);
    $dernier_jour = 28;
    while (checkdate($mois, $dernier_jour + 1, $an))
    	{ $dernier_jour++;}
     
    //Affichage de 7 jours du calendrier
     
    for ($i = 0; $i < 7; $i++){
    	if ($i < $premier_jour){ 
    		echo '<td width="60"></td>';
    	}else{
    		$ce_jour = ($i+1) - $premier_jour;
    		// si c'est un jour reserve on applique le style reserve
    		if($tab_jours[$ce_jour]){
    			echo '<td width="60" class="reserve">';
    		// sinon on ne met pas de style
    		}elseif ($jours < '2007-12-15'){
    			echo '<td width="60">k';
    		}else{
    			echo '<td width="60">';
    		}
    		echo $ce_jour;
    		echo '</td>';
    	}
    }
    //affichage du reste du calendrier
    $jour_suiv = ($i+1) - $premier_jour;
    for ($rangee = 0; $rangee <= 4; $rangee++){
    		echo '</tr>';
    		echo '<tr align="center" class="numero">';
    		for ($i = 0; $i < 7; $i++){
    			if($jour_suiv > $dernier_jour){ 
    				echo '<td width="60">';
    				echo '</td>';
    			}else{
    				// si c'est un jour reserve on applique le style reserve
    				if($tab_jours[$jour_suiv]){
    					echo '<td width="60" class="rouge">';
    				// si c'est un jour 'basse saison' on applique le style rouge (probleme ici)
    				}elseif (($mois == "10" && $jour > "5") or ($mois = "11") or ($mois == "12"  && $jour< "25")) {
    					echo '<td width="60" class="bleu">';
    				}else{ // jour 'pleine saison'
    					echo '<td width="60" class="vert">';
    				}
    				//echo $tab_jours[$jour_suiv];
    				echo $jour_suiv;
    				echo '</td>';
    			}
    			$jour_suiv++;
    		}
    }
    ?>
    La pour les testes j'introduit des dates d'éssais.
    Le bute finale est de rendre la date du calendrier soit en rouge "réservé", bleu " basse saison" et vert "plaine saison".

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 55
    Points : 31
    Points
    31
    Par défaut ...
    j'ai la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(($mois == "10" and $ce_jour< "4") or ($mois < "10") or ($mois > "12") or ($mois == "12" and $ce_jour > "25"))
    Merci à tous pour votre aide, à bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec mon OS
    Par quaresma dans le forum Windows XP
    Réponses: 2
    Dernier message: 11/01/2006, 06h50
  2. Probleme avec mon algorithme de tri
    Par kaygee dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2006, 21h23
  3. Probleme avec mon professeur
    Par Hamza dans le forum Algorithmes et structures de données
    Réponses: 20
    Dernier message: 16/07/2005, 10h50
  4. [Thread] Probleme avec mon Timer
    Par Nico66 dans le forum EDT/SwingWorker
    Réponses: 10
    Dernier message: 02/06/2005, 17h10

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