Résolu Système d'expiration auto en PHP

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
RGCoins
0
Bonsoir,

J'ai un problème ou plutôt voir une question ^^

J'aimerais faire un système de commande sa rien de compliquer ses déjà fait ^^
J'ai donc 3 état (En attente, Livrer, Expiré).

J'aimerais simplement savoir si il serait possible de faire un système d'expiration automatique en PHP ?

Petit exemple :

Je commande un service, il est livrer le 26/12/2016 et il expire le 27/12/2016.
J'aimerais simplement qu'avec PHP si nous sommes le 28/12/2016 il passe toute les commandes du 27/12/2016 en état (Expiré).

J'ai déjà essayé quelques truc mais cela n'a pas marcher :/

Si quelqu'un a une idée, qu'il s'exprime ;)

Merci de votre aide <3
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 711
Réactions
8 500
Points
32 425
RGCoins
0
Bonsoir,

J'ai un problème ou plutôt voir une question ^^

J'aimerais faire un système de commande sa rien de compliquer ses déjà fait ^^
J'ai donc 3 état (En attente, Livrer, Expiré).

J'aimerais simplement savoir si il serait possible de faire un système d'expiration automatique en PHP ?

Petit exemple :

Je commande un service, il est livrer le 26/12/2016 et il expire le 27/12/2016.
J'aimerais simplement qu'avec PHP si nous sommes le 28/12/2016 il passe toute les commandes du 27/12/2016 en état (Expiré).

J'ai déjà essayé quelques truc mais cela n'a pas marcher :/

Si quelqu'un a une idée, qu'il s'exprime ;)

Merci de votre aide <3
Salut,

Oui c'est possible, mais cela nécessitera qu'au moins une personne exécute le script, à moins que tu créer une tâche cron qui vérifie tous les jours ton script :p
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
RGCoins
0
Salut,

Oui c'est possible, mais cela nécessitera qu'au moins une personne exécute le script, à moins que tu créer une tâche cron qui vérifie tous les jours ton script :p
Je compte mettre tout sa dans le fichier config.php ^^

Toutes les pages appelle le fichier config.php :p
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 711
Réactions
8 500
Points
32 425
RGCoins
0
Je compte mettre tout sa dans le fichier config.php ^^

Toutes les pages appelle le fichier config.php :p

Tranquille alors, et concernant, après concernant le script tu fais une boucle qui lis toutes les commandes, et tu compares la date maximal à la date actuelle, et voilà :p
En méthode de comparaison je sais pas laquelle est la meilleure, mais je ferai si j'étais toi

si le time(); actuel > time(); maximal
Tu modifies l'état avec l'id qui passe dans la boucle​
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
RGCoins
0
Tranquille alors, et concernant, après concernant le script tu fais une boucle qui lis toutes les commandes, et tu compares la date maximal à la date actuelle, et voilà :p
En méthode de comparaison je sais pas laquelle est la meilleure, mais je ferai si j'étais toi

si le time(); actuel > time(); maximal

Tu modifies l'état avec l'id qui passe dans la boucle​
Justement j'ai fais ce petit système qui n'a pas marcher :/

Code:
$SelectCommandeExpire = $bdd->prepare('SELECT * FROM commandes WHERE etat_id = ?');
$SelectCommandeExpire->execute(array("2"));
$DetailCommandeExpire = $SelectCommandeExpire->fetch();
$NewDate = new DateTime(''.$DetailCommandeExpire['date_e'].'');
$DateActuel = date("d-m-Y");
if($DateActuel > $NewDate->format('d-m-Y'))
{
    $UpdateCommandeExpire = $bdd->prepare('UPDATE commandes SET etat_id = ? WHERE date_e = ?');
    $UpdateCommandeExpire->execute(array("3", JeMetKoiLa?));
}

Le problème ses que ses pas quoi mettre a WHERE date_e :/
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 711
Réactions
8 500
Points
32 425
RGCoins
0
Justement j'ai fais ce petit système qui n'a pas marcher :/

Code:
$SelectCommandeExpire = $bdd->prepare('SELECT * FROM commandes WHERE etat_id = ?');
$SelectCommandeExpire->execute(array("2"));
$DetailCommandeExpire = $SelectCommandeExpire->fetch();
$NewDate = new DateTime(''.$DetailCommandeExpire['date_e'].'');
$DateActuel = date("d-m-Y");
if($DateActuel > $NewDate->format('d-m-Y'))
{
    $UpdateCommandeExpire = $bdd->prepare('UPDATE commandes SET etat_id = ? WHERE date_e = ?');
    $UpdateCommandeExpire->execute(array("3", JeMetKoiLa?));
}

Le problème ses que ses pas quoi mettre a WHERE date_e :/

Fais une boucle, et change ta base de donnée et ton code pour insérer la valeur time(); c'est mieux puis tu peux récupérer par la suite le format de date que tu veux
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
RGCoins
0
Fais une boucle, et change ta base de donnée et ton code pour insérer la valeur time(); c'est mieux puis tu peux récupérer par la suite le format de date que tu veux
J'ai pas trop compris :p
Pour commencer la boucle qui sélectionne toute les commandes ses déjà fait ^^ sa sélectionne tout les commandes avec comme etat_id "2".

Après pour changer la BDD je viens de mettre les valeurs en INT ^^ mais ensuite le code sur mes pages plante :/ surtout a cause du new datetime ^^
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 711
Réactions
8 500
Points
32 425
RGCoins
0
J'ai pas trop compris :p
Pour commencer la boucle qui sélectionne toute les commandes ses déjà fait ^^ sa sélectionne tout les commandes avec comme etat_id "2".

Après pour changer la BDD je viens de mettre les valeurs en INT ^^ mais ensuite le code sur mes pages plante :/ surtout a cause du new datetime ^^

On s'en fiche du new datetime dans notre cas vu que tu vas jouer avec le time() uniquement x) Si tu as teamviewer viens en privé ce sera plus simple
 
Cette réponse a aidé l'auteur de cette discussion !

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
RGCoins
0
On s'en fiche du new datetime dans notre cas vu que tu vas jouer avec le time() uniquement x) Si tu as teamviewer viens en privé ce sera plus simple
Je pense aussi car la je bloque complètement mais vue que tu es plu fort que moi :p

Je prépa une convo pour les accès et let's go ^^
 
Haut