begin process at 2012 05 28 23:05:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Faire une suite d'insctruction à une date précise en php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Faire une suite d'insctruction à une date précise en php

mercredi 13 mai 2009 à 15:36:35 | Faire une suite d'insctruction à une date précise en php

Shikapowa

Mesdames Mesdemoiselles Messieurs bonjour,
Alors qu'il pleut intensément dehors, j'essaie de me consoler avec mon projet dans mon bureau et après moulte réflexion avec script javascript et php, j'ai besoin de vos conseils et de votre aide pour réaliser un bout de code.
En faite je souhaite supprimer le contenu d'une table à une date précise (supprimer les produit en promotion chaque fin de mois vu que c'est une promotion par mois)
Hors je sais qu'en javacript ce n'est pas possible sauf si on reste connecté
regardez ce bout de code que j'avais mis mais qui ne peut fonctionner si on est pas sur la page:

        <script type="text/javascript">
        // Script pour afficher le compte à rebours//
                var temps = <?php echo $secondes ?>;
                var timer =setInterval('CompteaRebour()',1000);
                function CompteaRebour(){
               
                  temps-- ;
                  j = parseInt(temps/(24*60*60)) ;
                  h = parseInt((temps%(24*60*60))/3600) ;
                  m = parseInt((temps%3600)/60) ;
                  s = parseInt((temps%3600)%60) ;
                  document.getElementById('lool').innerHTML= (j<10 ? "0"+j : j) + '  j :  ' +
                                                                (h<10 ? "0"+h : h) + '  h :  ' +
                                                                (m<10 ? "0"+m : m) + ' mn : ' +
                                                                (s<10 ? "0"+s : s) + ' s ';
if ((s == 0 && m ==0 && h ==0)) {
  
   url = "<?php echo $redirection;?>";
   Redirection(url);
   clearInterval(timer);
}
}
function Redirection(url) {
setTimeout("window.location=url", 500)

}

        </script>

à la fin du décomptage je fais une redirection sur une page php qui supprime le contenu de ma table. Hors si nous sommes pas sur la page promo.php eh bien quand le compteur arrive à 0, ça ne fais pas une redirection, normal.

Donc j'ai pensé à ce petit script PHP que je me demande si ça fonctionnerais?

$heures   =23;  // Heure de fin de la promo
$minutes  =23;   // Minutes de fin pour la promo
$secondes = 59;  // Secondes de fin pour la promo

$annee = date("Y");  //-----------------------//
$mois  = date("m");  // Pou le mois en cours--//
$jour  = date("t");  //-----------------------//


$redirection = "delete.php";
if (time()==mktime($heures,$minutes,$secondes,$mois,$jour,$annee))
{
header(Location:delete.php);
ou
$delete = "delete from promo";
$resultat = mysql_query($delete);
}
?>

Cela fonctionnerait - il même si je ne suis pas sur la page?

Cordialement,
Shikapowa
mercredi 13 mai 2009 à 16:05:27 | Re : Faire une suite d'insctruction à une date précise en php

nautilus99

le plus simple lorsqu'un événelment doit s'exécuter de manière régulière, par exemple une suppression mensuelle, c'est d'en faire un crontab. Evidemment si les cron ne sont pas disponibles sur le serveur, ça complique les choses.

Une autre solution, bien plus simple, est de confier à l'appli le soin de gérer ça. Une simple mini routine, du genre:

// Test du changement de mois...
$dt = date_create() ;
$jour = intval( $dt->format( 'j' ) ) ;
if ( $jour == 1 ) {
   // mise en place d'un contrôle pour ne pas surcharger...
   $test = $dt->format( 'Y-m-d' ) ;
   if ( !file_exists( $test ) ) {
     touch ( $test ) ;
     $delete = "delete from promo";
     $resultat = mysql_query($delete);
   }
}

enfin, ce n'est qu'une suggestion.


mercredi 13 mai 2009 à 16:10:11 | Re : Faire une suite d'insctruction à une date précise en php

Shikapowa

Peux tu m'expliquer, si tu as le temps et l'envie surtout ^^, ce que se passedans le début du if oO? stp

Cordialement,
Shikapowa
mercredi 13 mai 2009 à 16:12:55 | Re : Faire une suite d'insctruction à une date précise en php

Shikapowa

Enfin tout =s, je ne connais pas la syntaxe avec date_create et les "->" =s
mercredi 13 mai 2009 à 16:31:58 | Re : Faire une suite d'insctruction à une date précise en php

nautilus99

date_create() crée un objet date, c'est là depuis PHP 5.2 et ça utilise une classe dateTime.
$jour récupère uniquement le jour du mois avec le format 'j' et assure un entier...
le reste est très simple.
on crée un nom de fichier avec un format date genre 2009-05-01
touch crée ce fichier (vide))

tout simple et très efficace.




mercredi 13 mai 2009 à 16:33:55 | Re : Faire une suite d'insctruction à une date précise en php

nautilus99

la syntaxe avec des -> et des :: est la syntaxe objet de PHP, qui est également celle du C++.
Pour comprendre mieux, dans le manuel d ePHP, les Objets en PHP5 est un très bon point de départ.



mercredi 13 mai 2009 à 16:35:42 | Re : Faire une suite d'insctruction à une date précise en php

Shikapowa

$jour = intval( $dt->format( 'j' ) ) ;
$heur = intval($dt->format( 'H' ));

if ( $jour == 13 && $heur == 17 ) {
   // mise en place d'un contrôle pour ne pas surcharger...
   $test = $dt->format( 'Y-m-d' ) ;
   if ( !file_exists( $test ) ) {
     touch ( $test ) ;
 mysql_select_db($database, $Commercemysql);
    
     $delete = "delete from produit";
     $resultat = mysql_query($delete);
   }
}

Donc ceci va delete quand l'heure sera 17 si j'ai bien suivi tes conseil ^^?
Mais je me demande, si je suis pas sur le site, ça fonctionne pas si?
mercredi 13 mai 2009 à 16:59:34 | Re : Faire une suite d'insctruction à une date précise en php

nautilus99

Cette série d'instructions fonctionnera que tu y sois ou pas, puisqu'elle se déclenchera dès que la condition sera validée, par le prmeier visiteur qui y passera... à cette heure là.
Tyu peux affiner la chose en testant systématiquement la présence du fichier si tu as très peu de visiteurs.



mercredi 13 mai 2009 à 17:04:01 | Re : Faire une suite d'insctruction à une date précise en php

kohntark

Membre Club
Salut,

Encore plus simple et efficace à mon avis : ne pas les supprimer le 01 du mois
tu ajoutes un champ 'date_limite' à ta table
pour l'affichage tu contrôles la date de validité (WHERE date_limite > CURRENT_DATE())

Pour la suppression je crois que le mieux est de le faire dans la partie admin, lorsque tu rentres de nouvelles promotions tu exécutes automatiquement le delete des enregistrements du mois n-1.
Sauf a avoir les 10 prochaines années de promo déjà entrées à raison de 500 / mois ça ne posera aucun pb de rapidité., ça sera même bien plus rapide qu'un script qui effectue des tests, écriture, etc ...


Une petite remarque sur le script de Nautilus :
Si il n'y a pas de connexion le 01 du mois les promos ne sont pas supprimées si tu t'appelles google par de pb, mais pour les "petits" sites c'est une donnée à prendre en compte.


Cordialement,


Kohntark -

mercredi 13 mai 2009 à 17:05:13 | Re : Faire une suite d'insctruction à une date précise en php

Shikapowa

Donc je dois garder le jours même vu que je ne sais pas à l'heure si quelqu'un passera
Donc si je mets au premier du mois comme tu l'as mis, cela veut dire que tant que nous sommes le premier du mois, il ne sera pas possible de mettre des nouveaux enregistremenbt dans la table produit, sinon dès qu'un visiteur passeras, ça re delete encore une fois ^^?

1 2

Cette discussion est classée dans : fin, date, php, temps, mois


Répondre à ce message

Sujets en rapport avec ce message

Date du lendemain en PHP [ par kimengumi ] Salut à tous,Je viens d'être confronté à un chtit problème, c'est d'afficher la date du lendemain en PHPVous allez me dire qu'il suffit de faire un da HELP !!!!! pb de variable je pensse [ par mickey180 ] Boujors à tous.Je suis nouveau dans le monde du PHP et j'ai un petit pb avec une de mes page.EXPLICATION : Cette page fait partie d'un intranet et doi Additionner un mois d'une date [ par albimver ] Bonjour, je développe actuellement sous PHP j'aimerais que à partir d'une date exmple date location ajouter 3 (pour mois) afin qu'il me donne la date Probleme SQL PHP - effectuer une requête avec inférieur ou égale et une date ... [ par FXPHANTOM ] Bonjour , Je vous remets entre les mains un petit problème facheux ... Ma requête fonctionne très bien lorsque $date = date (DD-MM-YYYY)et quand $da archivage de news en php [ par samo013 ] Salut je veux savoir comment faire pour réaliser un archivage de news dans notre Blog par exemple : [color=blue]ARCHIVE :[/color][b][/b] [u]Juin 20 Deux boucles imbriqués [ par stade13 ] Le bien bonjour à tout, mon problème et le suivant "> PHP avec fonction javascript [ par midoxe ] Bonjour, je travail sur un formulaire dynamique qui marche bien..sauf que dans ce formulaire je fais appel à une fonction javascript pour retourner l HELP ME - Compte a rebour jquery php [ par FXPHANTOM ] Bonjour , j'ai tenté de concevoir un compte a rebours en jquery et php, donc tout va bien pour lui mais le seul soucis c'est que celui ci ne se raffr CALCUL D'UNE DATE DE FIN D'ECHENCE [ par riahihmida ] Bonjour je veux savoir comment calculer une date de fin d'echeance a partir d'une date de debut. exemple: date de debut 20/10/2011 nombre d'echeanace


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales