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

PHP & Base de données Discussion :

Refresh automatique d'une date [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut Refresh automatique d'une date
    Bonjour,

    dans ma base, j'ai une table avec un champ "date".

    Les valeurs entrées dans ce champ sont du type jj/mm/aaaa.

    Hors, il faudrait qu'il y ait un changement automatique de la date quand celle-ci est en ligne depuis +30j.

    Par exemple :

    la date entrée est le 11/02/2005.
    Il faudrait que le 11/03/2005, la date change automatiquement à cette date...

    Est-ce faisable en traitement automatique ?? et si oui, comment ??

    J'espère être clair !
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Utilise les triggers si tu peux (MySQL 5.0.2) enfin c'est pas forcément automatique, ca se fera au prochain update/select/...

    Sinon utilise http://www.webcron.org

  3. #3
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    tu peux faire une vérification, regarder si le jour est le même mais pas le mois, changer le mois. regarde du coté de date() et mktime()
    A faire et à défaire on finit par ne plus rien faire.

  4. #4
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Sinon, avec un script qui se lance une fois par jour, parcours ta table, compare les dates avec la date du jour et au besoin la remplace...

  5. #5
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par cynferdd
    tu peux faire une vérification, regarder si le jour est le même mais pas le mois, changer le mois. regarde du coté de date() et mktime()
    C'est ce que j'avais pensé faire, mais ça oblige à lancer une page à chaque début de mois !

    J'aurais voulu savoir si c'était faisable sans intervention humaine.
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Sans intervention humaine ou presque :
    http://webcron.org

  7. #7
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    J'ai regardé, mais je pense que je vais le faire moi même... en plus, ça me fera réfléchir un peu, et c'est pas un mal !

    Dites-moi si ma méthode est bonne :

    Sur la page où la date est affichée, je fais un test dans lequel je compare la date du jour et la date dans ma base.

    - Si la différence est supérieure à 31 jours, alors j'include mon fichier qui modifie la date dans ma base et je refresh.
    - Sinon, j'affiche la page normalement.
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  8. #8
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    selon moi ça devrait marcher oui.
    A faire et à défaire on finit par ne plus rien faire.

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    +1

  10. #10
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Oui, mais tiens compte du fait que tu vas introduire un décalage dans le jour avec cette méthode (février + mois de 30 jours), enfin ce n'est peut être pas très gênant...

  11. #11
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Ce que je peux faire, c'est que dès que dans la fonction date() dès que d = 1 alors je change ma date... comme ça, même avec les mois de 30 ou 28 jours, ça marche !
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  12. #12
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Non, je suis bête, c'est pas au début du mois que je dois changer la date, c'est au bout d'un mois !!
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  13. #13
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Citation Envoyé par glloq8
    Non, je suis bête, c'est pas au début du mois que je dois changer la date, c'est au bout d'un mois !!
    Oui, c'est bien ce qu'il me semblait... du coup, la seule chose à faire est de regarder dans quel mois tu es et en fonction du nombre de jour de ce mois, ajouter 28, 29, 30 ou 31 à ta date...

    Ou encore pour chaque date de ta base, tu ajoutes un mois (peu importe le nombre de jours du mois presque, si tu considères que 1 mois après le 12 février est le 12 mars) et tu compares cette nouvelle date à la date du jour, si ça colle tu remplaces ta date et sinon, tu continues ta boucle...

    Qu'est ce que tu en penses?

  14. #14
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    C'est ce que je vais faire...

    Comparer le d de ma date avec le d de la date du jour...

    - Si ils sont égaux, alors je rajoute 1 au mois (en gérant le passage entre décembre et janvier de l'année suivante)
    - Si non, alors on s'en fout !!!!

    Merci à tous pour votre aide !!
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  15. #15
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Par contre, je vais attendre de l'avoir fait et que ça marche avant de mettre résolu... on sais jamais, je pourrais de nouveau vous appeler à l'aide
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Je me pose une question : quel intérêt d'avoir un champ sql si c'est pour le changer automatiquement ? Si tu veux que le 27/03/2005 devienne le 27/04/2005 puis le 27/05/2005... autant n'indiquer que le jour (27) dans la base et ajouter le mois et l'année en php (si le jour actuel est inférieur à 'date', prendre le mois précédent, sinon prendre le mois en cours => si nous sommes le 23/10/2005, cela donne le 27/09/2005 ; si nous sommes le 29/10/2005, cela donne le 27/10/2005). C'est quand même beaucoup plus simple, et tu évites toute une série d'UPDATE... Ou alors j'ai loupé quelquechose ?

  17. #17
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    J'ai pas tout capté là...
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

  18. #18
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    C'est bon, j'ai tout fait et ça marche...

    pour info voici le code utilisé :

    fichier refresh_date.php :
    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
    <?
     
    // Découpe de la date
    $jour_offre = substr($date[$i], 0, 2);
    $mois_offre = substr($date[$i], 3, 2);
    $annee_offre = substr($date[$i], 6,4);
     
    // Test : si jour en cours = jour de l'offre
    if ($jour == $jour_offre) {
    	if ($mois_offre < $mois) {
    		$mois_offre = $mois_offre + 1;
    		$date_offre = $jour_offre."/".$mois_offre."/".$annee_offre;
    		$sqlquery = "update offres_emploi set date='$date_offre' where id='$id[$i]';";
    		$resultat = mysql_query($sqlquery);
    	}
    }
     
    ?>
    dans ma page offres.php :
    je récupère les données de la base :
    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
    $sqlquery_offres = "select * from offres_emploi where etat=1;";
    	$queryresult_offres = mysql_query($sqlquery_offres);
    	$nbresultat_offres = mysql_num_rows($queryresult_offres);
     
    	for ($i=0 ; $i<$nbresultat_offres ; $i++)
    		{
    			$detail = mysql_fetch_array($queryresult_offres);
    			$id[$i]=$detail["id"];
    			$intitule[$i]=$detail["intitule"];
    			$ref[$i]=$detail["ref"];
    			$date[$i]=$detail["date"];
    			$contrat[$i]=$detail["contrat"];
    			$description[$i]=$detail["description"];
    			$ville[$i]=$detail["ville"];
    			$departement[$i]=$detail["departement"];
    			$debut[$i]=$detail["debut"];
    			$duree[$i]=$detail["duree"];
    		}
    ensuiste, je cré les variables jours et mois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $jour = date('d');
    $mois = date('m');
    et enfin, je fais l'include() juste avant l'affichage de ma variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?
    include('refresh_date.php');
    echo $date[$i] ?>
    et ça marche nickel...

    Encore un grand MERCI à tous pour votre aide !!
    - L'intelligence Artificielle n'a aucune chance en face de la Stupidité Naturelle !

    - Pour vivre vieux... vivez longtemps -Erik Satie -

    - Des petites infos qui peuvent être utiles : Je savais pas

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

Discussions similaires

  1. Refresh automatique d'une session AS400
    Par Anavai dans le forum AS/400
    Réponses: 2
    Dernier message: 23/09/2011, 14h50
  2. [XL-2002] saisie automatique d'une date
    Par sylvain591 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2009, 10h28
  3. Insertion automatique d'une date
    Par devdev dans le forum Excel
    Réponses: 3
    Dernier message: 13/02/2009, 14h26
  4. Refresh automatique d'une variable
    Par maVariable dans le forum JSF
    Réponses: 4
    Dernier message: 23/05/2008, 17h09
  5. Réponses: 1
    Dernier message: 12/04/2007, 17h08

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