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] Besoin de conseil pour une date


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 74
    Points : 46
    Points
    46
    Par défaut [Dates] Besoin de conseil pour une date
    Bonjour tout le monde,
    je dois faire un requete, c'est un isert pour tous les jour de l'année X.
    Je me demande quel est le meilleur moyen de faire cette insert avec un boucle for, un while ????
    Existe t il une astuce avec time() ou date() ????
    Merci si vous pouvez allumer ma lanterne.

  2. #2
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    Faire un insert unique pour toutes les dates d'une année, c'est pour préparer tes tables je suppose ?
    En vue de leur attribuer ultérieurement des événements, ou autres ?
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    non c'est pour gerer des disponibilité pour des hotels. je dois faire un insert pour chaque jour de l'année X, avec le nombre de disponibilité, des id etc ...
    Mais je cherche un moyen efficace pour faire cette insert.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    moi je ferai quelque chose dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($i=1;$i<366;$i++)
     insert ..... strtotime("+$i day") ...;
    }
    enfin à approfondire ...

  5. #5
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Exemple avec boucle:

    Dans ce cas de figure, il te faut bien sûr connaître les dates de début et de fin.
    Il y a sûrement mieux à faire, d'autre part, celà va surcharger ta db ( 1 ligne par jour, ça fait beaucoup)

    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
    <?php
     
    $debut= strtotime("2006-01-01"); 
    $fin= strtotime("2006-12-31"); 
     
    $njrs=($fin-$debut)/60/60/24;
     
    for($i=0;$i<=$njrs;$i++) 
    { 
     
    $date = date('Y-m-d',$debut);
     
    $sql = "INSERT INTO tatable VALUES('$date','$etc',...............')"; 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    $debut+=60*60*24; 
    }
    ?>
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  6. #6
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    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
     
    /*************
      J SUIVANT renvoie jour+1, param date
    *************/
    /** 
    * Calcule le jour suivant celui passé en paramètre
    * @param $date La date a considérer
    * @return Le jour suivant en format d/m/y
    */
    function j_suivant($date)
    {
    	$nb_j = DaysInMonth($date);
    	list($day,$mois,$an) = explode('/',$date);
     
    	// Si pas fin du mois on incrémente le jour
    	if($day<$nb_j)
    		$day++;
    	// Sinon c'est le 1er jour du lendemain
    	else
    	{
    		$day = 01;
    		// Si le mois n'est pas décembre alors incrémente
    		if($mois<12)
    			$mois++;
    		// Sinon on passe à janvier et on incrémente l'année
    		else
    		{
    			$mois = 01;
    			$an++;
    		}
    	}
     
    	$d = mktime( 0, 0, 0, $mois, $day, $an );
    	$j = date("d/m/y",$d);
    	return $j;
    }
     
    /*************
     DAYS IN MONTH (param date 01/01/1000)
    *************/
    /** 
    * Calcule le nb de jours dans le mois de l'année passés en params
    * @param $date La date a considérer
    * @return La durée du mois en nombre de jours
    */ 
    function DaysInMonth($date)
    {
       list($d,$mois,$an) = explode('/',$date);
     
       if($mois==2)
          if($an%4) return 28;
          elseif($an%100) return 29;
          elseif($an%1000) return 28;
          else return 29;
       elseif(($mois==4)||($mois==6)
          ||($mois==9)||($mois==11)) return 30;
       return 31;
    }
    Fonctions repiquées pour mes besoins je ne plus trop où donc pas de copyright

    Avec ça plus de souci pour incrémenter tes jours
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    merci bcp pour votre aide, LA LUMIERE FUT grace à
    un for est strtotime("now+".$j." day"));

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

Discussions similaires

  1. besoin de conseil pour une combo.
    Par loic20h28 dans le forum Windows Forms
    Réponses: 20
    Dernier message: 22/02/2008, 10h50
  2. Réponses: 4
    Dernier message: 07/12/2007, 18h39
  3. besoin de conseil pour une anim
    Par larnack dans le forum Flash
    Réponses: 6
    Dernier message: 14/10/2006, 23h28
  4. Besoin de conseils pour une application
    Par peredodu dans le forum Access
    Réponses: 9
    Dernier message: 05/03/2006, 11h18
  5. Création requete besoin d'aide pour une date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/07/2004, 22h03

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