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 :

[Conception] Modif différée ou utilisation différée d'une donnée dans une table


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut [Conception] Modif différée ou utilisation différée d'une donnée dans une table
    Bonjour,

    Je retourne depuis quelques heures le problème dans tous les sens, mais je ne voie pas comment réaliser ce qu'il me faut.

    J'utilise une table dans laquelle, entre autre, on trouve des tarifs. L'idée étant d'avoir une page de modification (que j'ai en partie) avec un champ dans lequel on précise la date à laquelle les modifications doivent être prises en compte.

    Ca me paraît pas très évident à faire. Par exemple le 30 octobre 2006 un tarif est modifé et prend effet le 10 Novembre. Il ne faudra pas qu'en utilisant la table via un site, on voit le nouveau tarif avant le 10 Novembre.

    Une idée ?

  2. #2
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Bonjour,

    Tu pourrais :
    créer un table des modifs qui contient l'id de l'enregistrement à modifier, la date de modification et la modification à effectuer.
    Tu enregistres dans cette table les modifications de tarif
    tu crées une tâche cron qui tout les matins va balayer cette table, faire les modifs du jour et effacer l'enregistrement de la table des modifs

    ou alors

    modifier la table des tarifs en ajoutant deux colonnes : nouveau_tarif, a_partir_du
    créer une tâche cron qui balaie la table tout les matin et qui fait les mises à jour

    il y a certainement d'autres moyens.

    A+

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    Merci pour ta réponse.

    J'avais également songé à un spooler, un peu comme une imprimante, avec un fichier des requêtes à faire, ou juste des données à modifier et puis un cron.

    Si quelqu'un a d'autres idées.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    même sans cron, tu peux le faire : tu crées une table des tarifs, comprenant les champs id_produit, tarif, a_partir_de

    la page de modifications rajoute simplement une ligne

    le désavantage, c'est que ta table peut rapidement augmenter si tu changes souvent tes tarifs.
    l'avantage, c'est que tu mémorises les tarifs antérieurs, tu gardes un historique complet.

    cela t'obligera peut-être d'avoir deux tables : celle décrite précédemment, et celle contenant toutes les caractéristiques du produit, et comprenant également le champ id_produit.

    Avec les jointures, la recherche restera rapide (pour plus de détails sur les jointures, voir par exemple ftp://ftp2.developpez.be/developps/php/mysql.pdf

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 34
    Par défaut
    Oui effectivement ça pourrait être une solution, mais je pense que ça me compliquerait la tâche pour développer le front-end d'administration de la table, en rajoutant notamment des contrôles sur la date pour ne pas afficher les historiques lors de l'édition par exemple.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    je n'ai pas creusé la question

    et effectivement, il est peut-être difficile de faire des conditions dans ta requêtes prenant la totalité de tes produits et uniquement la dernière date valable.

    si ce n'est pas possible, tu peux rajouter un champ jusqu_a dans la table des tarifs. dans ton formulaire d'enregistrement des tarifs, tu peux remplir ce champ lorsque tu crées un nouveau tarif

    une autre possibilité est de faire ta requete avec jointure avec un where sur la date du jour, comprenant ainsi tout l'historique mais pas le futur, et lors de l'édition, tu ne prends en compte que le dernier tarif.

    cela ne doit pas être bien compliqué.

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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