[sql]|[php] help systeme d expiration
Résolu/Fermé
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
-
27 déc. 2010 à 02:59
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 27 déc. 2010 à 23:01
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 27 déc. 2010 à 23:01
A voir également:
- [sql]|[php] help systeme d expiration
- Restauration systeme - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment refaire le système d'un ordinateur - Guide
- Cloner disque systeme - Guide
- Image système windows 10 - Guide
7 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
27 déc. 2010 à 17:13
27 déc. 2010 à 17:13
Salut.
Tu peux utiliser les tâches CRON.
Seulement, il te faut un serveur dédié, ou certains hébergeurs en mutualisés proposent aussi cette option. Elles permettent tout simplement d'exécuter un script PHP à un moment donné (une date, ou à intervalle).
Sinon, tu peux coder toi-même un système de CRON en PHP. Tu vérifies si la différence entre la date de la dernière exécution (stockée dans un fichier) et la date actuelle est supérieur à une jour. Si oui, tu exécutes la requête SQL. Ce script devra être inclus dans toutes les pages.
Ou bien alors tu peux tout simplement indiquer le jour d'expiration au lieu de stocker le nombre de jours restant.
Tu peux utiliser les tâches CRON.
Seulement, il te faut un serveur dédié, ou certains hébergeurs en mutualisés proposent aussi cette option. Elles permettent tout simplement d'exécuter un script PHP à un moment donné (une date, ou à intervalle).
Sinon, tu peux coder toi-même un système de CRON en PHP. Tu vérifies si la différence entre la date de la dernière exécution (stockée dans un fichier) et la date actuelle est supérieur à une jour. Si oui, tu exécutes la requête SQL. Ce script devra être inclus dans toutes les pages.
Ou bien alors tu peux tout simplement indiquer le jour d'expiration au lieu de stocker le nombre de jours restant.
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
27 déc. 2010 à 13:06
27 déc. 2010 à 13:06
Salut, si je comprend bien tu veux décrémenter ton champ "expire".
tu peux le faire avec une requête du type:
tu peux le faire avec une requête du type:
UPDATE 'Nom_de_ta_table' SET 'expire' = ('expire' - 1)
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 14:35
27 déc. 2010 à 14:35
Oui c'est sa mais j'ai besoin que cette requete s'execute automatiquement chaque jour a minuit par exemple es possible ?
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
27 déc. 2010 à 15:15
27 déc. 2010 à 15:15
Ah, autant pour moi, j'avais pas bien lu.
Je ne l'ai jamais mis en place mais je pense qu'il y a moyen de créer une procédure SQL et ensuite de la scheduler, j'ai vite fait trouvé ça sur google : https://atranchant.developpez.com/mysql/evenement/
Bon courage
Je ne l'ai jamais mis en place mais je pense qu'il y a moyen de créer une procédure SQL et ensuite de la scheduler, j'ai vite fait trouvé ça sur google : https://atranchant.developpez.com/mysql/evenement/
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 17:03
27 déc. 2010 à 17:03
je vais regardez merci a toi
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 17:34
27 déc. 2010 à 17:34
eee.... LOVE =) tu roxx toi =)
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 18:32
27 déc. 2010 à 18:32
la requete que l'on ma donnez pour le -1 ne marche pas elle remplace le champs par -1 donc comment soustraire en requete SQL un champs svp ? ou un scrypt php ^^
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
27 déc. 2010 à 18:35
27 déc. 2010 à 18:35
Il faut d'abord récupérer la valeur actuelle. Une fois que tu l'as dans une variable PHP, il suffit de décrémenter cette variable de 1 : $var -= 1
Et après, tu fais une requête pour mettre à jour la valeur de la colonne.
Mais je te conseille plutôt d'utiliser les dates ou le timestamp plutôt qu'un nombre représentant le nombre de jours restant.
Et après, tu fais une requête pour mettre à jour la valeur de la colonne.
Mais je te conseille plutôt d'utiliser les dates ou le timestamp plutôt qu'un nombre représentant le nombre de jours restant.
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 18:48
27 déc. 2010 à 18:48
Avec les Date je vois pas comment faire ^^ car la apres je compte mettre un systeme de conditions sur mes pages proteger pour verifié s'il sont toujours abonné
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
27 déc. 2010 à 18:56
27 déc. 2010 à 18:56
Il suffira de vérifier si "la date d'expiration est inférieur à la date actuelle"
alborq
Messages postés
52
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
20 février 2012
27 déc. 2010 à 19:12
27 déc. 2010 à 19:12
je fait le scrypt de -1 la mon code es en cours c'est corect ?
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\gm\lecture table.php on line 17
es la je voit pas ....
<?php try { // On se connecte à MySQL $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options); // On récupère tout le contenu de la table jeux_video $reponse = $bdd->query('SELECT * FROM compte'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <?php $result = $donnees['expire'] -= 1; $req = $bdd->prepare(UPDATE 'compte' SET 'expire' = :top) $req->execute(array( 'top' => $result, )); ?> } $reponse->closeCursor(); // Termine le traitement de la requête } catch(Exception $e) { // En cas d'erreur précédemment, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } ?>l'erreur es
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\gm\lecture table.php on line 17
es la je voit pas ....
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
27 déc. 2010 à 19:19
27 déc. 2010 à 19:19
Pourquoi fermer et réouvrir directement les "balises" PHP ?
Ta requête SQL est une chaine de caractère en PHP, donc il faut des guillemets autour.
De plus, il faut ajouter la clause WHERE pour ne pas mettre à jour tous les comptes par le nombre qui vient d'être trouvé.
Et pour terminer, "-=" sert à décrémenter une variable. Ici, le signe "moins" seulement suffit.
Ta requête SQL est une chaine de caractère en PHP, donc il faut des guillemets autour.
De plus, il faut ajouter la clause WHERE pour ne pas mettre à jour tous les comptes par le nombre qui vient d'être trouvé.
Et pour terminer, "-=" sert à décrémenter une variable. Ici, le signe "moins" seulement suffit.
<?php while ($donnees = $reponse->fetch()) { $result = $donnees['expire'] - 1; $req = $bdd->prepare('UPDATE compte SET expire = :top WHERE id = :id') $req->execute(array( 'top' => $result, 'id' => $donnees['id'], )); } ?>