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 :

Détecter changement d'enregistrement ?


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
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut Détecter changement d'enregistrement ?
    Ce sont des affectations, num_dossier, ddate_debut, date_fin

    | 99609 | 2006-11-02 | 2007-08-31 |
    | 99609 | 2007-09-01 | 2007-10-31 |
    | 99609 | 2007-11-01 | 2008-08-31 |
    | 9979 | 2006-10-09 | 2007-03-07 |
    | 9979 | 2007-04-23 | 2007-07-15 |
    | 9979 | 2007-12-01 | 2010-08-31 |
    | 99909 | 2007-12-01 | 2007-12-31 |
    | 99909 | 2008-01-01 | 2008-03-11 |
    | 99910 | 2006-02-20 | 2008-12-31 |
    | 99910 | 2007-11-01 | 2008-10-31 |
    +--------------+-----------------+------------------+
    select NO_DOSSIER_PERS,D_DEB_AFFECTATION,D_FIN_AFFECTATION from ORA_HARP_AFFECTATION order by NO_DOSSIER_PERS, D_DEB_AFFECTATION ASC;

    Je voudrais detecter lorsque le champ NO_DOSSIER_PERS change de valeur pour prendre la derniere affectation d'un agent.
    et si la date_fin de la derniere affectation est inferieur a la date du jour je la met a 0000-00-00. Je traite tout ca avec php.
    voila je voudrais juste savoir comment detecter que le num_dossier_pers change d'un enregistrement a l'autre lorsque je parcours ma table. MERCI.

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Ben c'est un algo assez classique :
    en même temps que tu lis une ligne, tu stockes l'id.
    A la lecture suivante, t ucompares les ids et tu sais s'il y rupture de clé.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Si c'est que la dernière affectation qui t'interesse et que tu n'as pas besoin des autres tu peux aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select NO_DOSSIER_PERS,max(D_DEB_AFFECTATION),max(D_FIN_AFFECTATION)
    from ORA_HARP_AFFECTATION
    group by NO_DOSSIER_PERS
    order by NO_DOSSIER_PERS;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    Citation Envoyé par Eric93 Voir le message
    Si c'est que la dernière affectation qui t'interesse et que tu n'as pas besoin des autres tu peux aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select NO_DOSSIER_PERS,max(D_DEB_AFFECTATION),max(D_FIN_AFFECTATION)
    from ORA_HARP_AFFECTATION
    group by NO_DOSSIER_PERS
    order by NO_DOSSIER_PERS;
    Petit souci car j'ai deja des D_FIN_AFFECTATION = "0000-00-00" dans ma base donc sur le MAX... ca marche pas

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Tu peux utiliser un sous SELECT dans la clause FROM de la requête principal, ca donne un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      select A.NO_DOSSIER_PERS,
             A.D_DEB_AFFECTATION,
             A.D_FIN_AFFECTATION
        from ORA_HARP_AFFECTATION as A,
          (select NO_DOSSIER_PERS,max(D_DEB_AFFECTATION) as D_DEB_MAX
             from ORA_HARP_AFFECTATION
         group by NO_DOSSIER_PERS) as B
       where A.NO_DOSSIER_PERS   = B.NO_DOSSIER_PERS
         and A.D_DEB_AFFECTATION = B.D_DEB_MAX  
    order by A.NO_DOSSIER_PERS;

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    merci pour vos reponses

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

Discussions similaires

  1. Désactiver momentanément le changement d'enregistrement
    Par mastasushi dans le forum Access
    Réponses: 5
    Dernier message: 15/05/2006, 10h09
  2. changement d'enregistrement
    Par fscli dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 09h42
  3. changement d'enregistrement via liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 18h47
  4. Action au changement d'enregistrement
    Par krfa1 dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2005, 10h59
  5. Evenement avec changement d'enregistrement
    Par SegmentationFault dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 15h30

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