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 :

Effectuer une requête après x jours.


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut Effectuer une requête après x jours.
    Salut !
    Pour le système de bannissements, je voudrais effectuer une requête (update) après un certain nombre de jours.
    J'explique : le modérateur entre par exemple "5" dans le champ de texte, et 5 jours après l'appui sur le bouton d'envoi, une requête update s'execute automatiquement. Comment faire ? Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Plus simplement, calcule (aujourd'hui + x jours) et enregistre la date de fin de bannissement.
    Si la date de fin de bannissement < aujourd'hui, l'utilisateur n'est plus banni.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Ça collera pas.

    Voici la partie dans "traitement_connexion.php" qui vérifie si le membre est ban :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req6 = $pdo->prepare("SELECT * FROM bannissements WHERE id_du_membre = :identifiant_ban AND statut = :statut");
    	$req6->execute(array("identifiant_ban" => $_SESSION["id"], "statut" => "en_cours"));
    	$resultat_ban = $req6->fetch();
    		if(!$resultat_ban) {
    			header("Location: index.php");
    		}
    		else {
    			header("Location: ban.php");
    		}
    Et dans "ban.php" il y a (à la fin) un « session_destroy(); ».
    Je veux donc qu'après x jours, un update modifie le champ "statut" pour lui donner comme valeur "fini".

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme tu as pu le remarquer, ta methode te mène dans une impasse.
    C'est pour ça que je t'en propose une autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Donc si le champ qui dit si le membre est banni ou non se trouve dans ma table "membres", le motif & les autres infos je les mets où ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    La méthode proposée par sabotage est de loin meilleure que la tienne.
    Ensuite, rien ne t'empêche d'avoir dans ta table "membres" un champ booléen "banni" et une table "ban" indiquant pour chaque membre banni les infos relatives au bannissement.
    Avec l'id du membre, tu peux facilement faire le lien entre les deux tables...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux garder ta table bannissement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Je vais essayer, mais par contre, je sais pas du tout comment executer mon update automatiquement après x jours (pour modifier le champ). Une idée ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas compris le principe : il n'y a rien a mettre à jour au bout de x jours.
    Le statut de bannissement est déduis de la date de fin de bannissement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Je ne comprends toujours pas.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si ma date de fin de bannissement est au 1er janvier 2013, au 29 décembre 2012, je suis banni ; au 6 janvier 2013, je ne suis pas banni.
    Il n'y a rien a mettre à jour.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Je vois. Et comment je peux faire pour ma question sur le formulaire ? Le fait de rentrer le nombre de jours du ban.

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que par "automatiquement" tu veux dire sans rafraichissement de la page, il faut donc utiliser Ajax.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Non à la base je voulais savoir comment executer une requête automatiquement après un laps de temps en jours.
    Par exemple si je rentre "5" dans mon formulaire, la requête doit s'executer 5 jours plus tard automatiquement.

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Merci.

Discussions similaires

  1. [AC-2003] Exécution d'une requête de mise à jour après un vbYes
    Par ostrich95 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/03/2014, 11h37
  2. [WD17] Mise à jour d'une requête après ajout d'une rubrique
    Par b_reda31 dans le forum WinDev
    Réponses: 5
    Dernier message: 22/05/2013, 16h10
  3. [MySQL] Comment s'y prendre pour une expiration après deux jours ?
    Par isa150183 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/01/2006, 21h36
  4. Réponses: 6
    Dernier message: 29/11/2005, 20h36
  5. Limiter les résultats d'une requête à \today\' - n jours
    Par Eddy Duflos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2005, 09h46

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