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 :

Execution automatique cron ou pas ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut Execution automatique cron ou pas ?
    Bonjour,
    J'ai un script qui permet de modifier une base de donner.
    Je voudrais qu'il sois executer en fonction des heures choisies.
    Je m'explique j'ai des produits à vendre.

    Ex: Un téléphone portable
    A 4h du mat et jusqu'a 6h du mat il y est 10% de remise
    de 6h à 8h il y est 15% de remise.
    de 8h à 24H 20%

    Et que tous est paramétrable par rapport à chaque produit.

    Comment faire une commande cron ou pas ???

    Merci à tous.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Salut,
    Tu n'as pas besoin de cron pour ça il faut juste que tu stipule quelque part en base les remises sur les produits et les jours/heures auxquelles elles s'appliquent.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut
    J'ai fait un bout de code mais ca fonctionne que si je réactualise la page a la seconde près.
    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
     
    function startVenteFlash()
         {
             $offset = time()+Configuration::get('VF_OFFSET');
             $start = Db::getInstance()->Execute('
             SELECT *
             FROM `'._DB_PREFIX_.'venteflash` as vf
             WHERE vf.datedebut < vf.datefin
             ');
             $nb_reg = mysql_num_rows($start);
             if ($nb_reg > '0')
             {
                while ($list = mysql_fetch_row($start))
                {
                    if(strtotime($list[2]) < $offset AND strtotime($list[3]) > $offset)
                    {
                        $sql=Db::getInstance()->Execute('
                        UPDATE `'._DB_PREFIX_.'product`
                        SET reduction_percent='.($list[4]).', reduction_from=CURDATE(), reduction_to=CURDATE(), date_upd=NOW()
                        WHERE id_product="'.($list[1]).'"
                        ');
     
     
     
    				if(($list[7]) > 0)
    					{
    					$conf = Db::getInstance()->Execute('
    					SELECT *
    					FROM `'._DB_PREFIX_.'venteflashconfig`
    					WHERE id="'.($list[7]).'"
    					');
    					$nb_reg = mysql_num_rows($conf);
    					if ($nb_reg > '0')
    						{
    						while ($config = mysql_fetch_row($conf))
    							{
     
    							if($config[4]==1)
    								{
    								$dat3=strtotime('+'.$config[3].' hours'.$list[2]); 					
    								}
    							if($config[4]==2)
    								{
    								$dat3=strtotime('+'.$config[3].' hours'.$list[2]); 
    								$datdep=$config[3]*2;
    								$dat4=strtotime('+'.$datdep.' hours'.$list[2]);						
    								}
    							if($config[4]==3)
    								{
    								$dat3=strtotime('+'.$config[3].' hours'.$list[2]); 
    								$datdep=$config[3]*2;
    								$dat4=strtotime('+'.$datdep.' hours'.$list[2]);
    								$datdep2=$config[3]*3;
    								$dat5=strtotime('+'.$datdep2.' hours'.$list[2]);						
    								}
    							if($config[4]==4)
    								{
    								$dat3=strtotime('+'.$config[3].' hours'.$list[2]); 
    								$datdep=$config[3]*2;
    								$dat4=strtotime('+'.$datdep.' hours'.$list[2]);
    								$datdep2=$config[3]*3;
    								$dat5=strtotime('+'.$datdep2.' hours'.$list[2]);
    								$datdep3=$config[3]*4;
    								$dat6=strtotime('+'.$datdep3.' hours'.$list[2]);						
    								}
    							if($config[4]==5)
    								{
    								$dat3=strtotime('+'.$config[3].' hours'.$list[2]); 
    								$datdep=$config[3]*2;
    								$dat4=strtotime('+'.$datdep.' hours'.$list[2]);
    								$datdep2=$config[3]*3;
    								$dat5=strtotime('+'.$datdep2.' hours'.$list[2]);
    								$datdep3=$config[3]*4;
    								$dat6=strtotime('+'.$datdep3.' hours'.$list[2]);
    								$datdep4=$config[3]*5;
    								$dat7=strtotime('+'.$datdep4.' hours'.$list[2]);						
    								}
    							if($dat3 == $offset OR $dat4 == $offset OR $dat5 == $offset OR $dat6 == $offset OR $dat7 == $offset)
    								{
    								echo"ca march";
    								if($config[5]=="Add")
    								$pourcentage=$list[4]+$config[2];
    								else
    								$pourcentage=$list[4]-$config[2];
    								$sql=Db::getInstance()->Execute('
    								UPDATE `'._DB_PREFIX_.'venteflash`
    								SET vfreduction='.$pourcentage.'
    								WHERE id_venteflash="'.($list[1]).'"
    								');
    								$sql=Db::getInstance()->Execute('
    								UPDATE `'._DB_PREFIX_.'product`
    								SET reduction_percent='.$pourcentage.', reduction_from=CURDATE(), reduction_to=CURDATE(), date_upd=NOW()
    								WHERE id_product="'.($list[1]).'"
    								');
    								}
    						echo"$dat3 == $offset OR $dat4 == $offset OR $dat5 == $offset OR $dat6 == $offset OR $dat7 == $offset";
    							}
    						}
     
    					}
    				}
                }
                $free = mysql_free_result($start);
             }
         }
    En sachant que c'est la fonction finale qui permet la modif de ma base de donnée
    if($dat3 == $offset OR $dat4 == $offset OR $dat5 == $offset OR $dat6 == $offset OR $dat7 == $offset)

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Ou alors ne pas le faire automatiquement justement (sorte de mise à jour asynchrone). Je m'explique :

    Si tu veux faire une promo de 10h à midi pour ton site et qu'il n'est pas visité dans cette plage horaire alors cela ne sert à rien idem pour la plage 10h-10h20 si le premier visiteur arrive à 10h20. Bref cela ne sert qu'à partir du moment ou tu as un visiteur. A partir de ce constat, tu peux créer une table promo avec au moins un champ date 'debut_promo', un champs date 'fin_promo' et un champ tinyint (1 ou 0) 'activation' servant à savoir si la promo a déjà été lancée. Le premier visiteur arrivant dans la plage de la promo lancera la promo (activation passe à 1) qui passera active pour tous les autres utilisateurs du site puis le premier utilisateur a charger une page hors promo désactivera cette promo

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut
    Merci beaucoup ta solution fonctionne très bien

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Y'a pas de quoi, penses au tag RESOLU

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

Discussions similaires

  1. execution automatique d'une action par le serveur
    Par mael94420 dans le forum ASP
    Réponses: 3
    Dernier message: 16/06/2006, 11h18
  2. Requete ajout executée automatiquement
    Par momo60 dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2006, 13h51
  3. [Système] execution automatique d'un script php.
    Par ghostdog dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 16h06
  4. [VB6] execution automatique d'une tache
    Par Jacen dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 18/05/2006, 08h52
  5. Execution automatique de code
    Par Ant8386 dans le forum Oracle
    Réponses: 6
    Dernier message: 10/05/2006, 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