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

Langage PHP Discussion :

Détecter un changement dans une base de données


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Détecter un changement dans une base de données
    bonjour

    j'espére trouver içi quelqu'un qui sait comment detecter un changement dans une base de donnée et exécuter un script ou afficher une page.

    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
    De quelle base de donnée parles-tu ?

    Par quoi est réalisée le changement que tu dois detecter ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    la base Mysql
    le changement et soit insertion soit suppression d'un enregistrement de la base

    et je veu qu'une page internet s'acctualise dés qu'un chanegement aura lieu

    merçi

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    A mon avis c'est plutot de l'Ajax dont tu parle, un peu à la manière de facebook qui actualise le fil principal quand quelqu'un réalise une action.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui
    exactement
    je pense bien d'utiliser ajax
    mais j'arrive pas a trouver comment le faire

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    il faut que tu passes par une fonction AJAX envoyant dans un div une page php qui elle check ta base pour voir s'il y a eu du changement (ie: si un champ de table est différent d'une variable de session stockée au préalable par exemple)

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function affichePage(url, div){    
     
    	var xhr_object = null;
     
    	if(window.XMLHttpRequest) 
    		xhr_object = new XMLHttpRequest();
    	else if (window.ActiveXObject) 
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
    	xhr_object.open("GET", url, true);
    	xhr_object.onreadystatechange = function(){
    		if (xhr_object.readyState == 4 && xhr_object.status == 200)
    			document.getElementById(div).innerHTML = xhr_object.responseText;
    		else
    			document.getElementById(div).innerHTML = 'En attente...';
    		}
     
    	xhr_object.send(null);
     
    } 
     
    url -> le lien vers ta page php
    div -> le div dans lequel tu veux que ta page php soit appelée

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //ta page php appelée
    // connexion à ta base et récupération du champs...
     
    if(!isset($_SESSION['valeur']) || $ton_champ != $_SESSION['valeur']){
         $_SESSION['valeur'] = $ton_champs;
         // reste du traitement...
    }

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    merçi bien mon ami pour votre aide


    mais le contrôle aura lieu périodiquement ou comme ?
    ce que j'ai compris que dans un delai précis au lieu de reflaichir la page on controle si il y'as changement on le reflaichir si non on fait rien
    c'est ça ??
    en tout cas

    je vas l'essayer et voir si c'est ça que je cherche
    merçi beaucoup



  8. #8
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par phpeur Voir le message
    ce que j'ai compris que dans un delai précis au lieu de reflaichir la page on controle si il y'as changement on le reflaichir si non on fait rien
    c'est ça ??

    Exact, via un setTimeout js par exemple tu rappelles ta fonction AJAX qui elle meme lance le requetage via php (inutile de dire que plus la requete est rapide est mieux c'est )

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Sans vouloir contredire qui que ce soit, mais à part faire des truc comme des procédures stockées, ce qui se réserver à des initiés, la plus grande majorité des cas une requête de mise à jour comme des UPDATE, INSERT INTO ou DELETE, c'est un code que l'on l'on fait explicitement, et ça dans sa page (ou autre fichier).
    On sait donc parfaitement quand, à quel moment elles seront exécutées.
    Du coup, je ne parviens pas à voit l'intérêt de faire une requête Ajax pour rechercher une donnée qui serait modifiée alors qu'on le sait.

    Si on souhaite proposer un contenu, une page selon qu'il y a eu ou pas une mise à jour, alors faire une redirection (un header) juste après la dite mise à jour est une technique très couramment utilisée.

    En gros, et par exemple :
    SI UPDATE -> on redirige vers une page X
    SI INSERT INT -> on redirige vers une page Y
    SI DELETE FROM -> on redirige vers une page Z
    SI aucune mise à jour, alors on propose la page demandée au départ.

    La plupart du temps, tout tient dans le déroulement de son script.
    Il y a des trucs à faire avant pour que l'on puisse proposer le bon contenu selon l'opération (précédente).
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  10. #10
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut
    Sans vouloir contredire qui que ce soit ......

    On sait donc parfaitement quand, à quel moment elles seront exécutées.
    Du coup, je ne parviens pas à voit l'intérêt de faire une requête Ajax pour rechercher une donnée qui serait modifiée alors qu'on le sait.
    Tu te méprends, ce système peut par exemple te permettre de savoir si, lors de l'édition d'un article par un contributeur, un autre contributeur n'aurait pas modifié lui aussi l'article. Ce qui permettrait d'éviter les éditions conccurentes...

  11. #11
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par ThomasR
    Tu te méprends, ce système peut par exemple te permettre de savoir si, lors de l'édition d'un article par un contributeur, un autre contributeur n'aurait pas modifié lui aussi l'article. Ce qui permettrait d'éviter les éditions conccurentes....
    Effectivement, j'avais homis ce détail :
    Citation Envoyé par phpeur
    et je veu qu'une page internet s'acctualise dés qu'un chanegement aura lieu
    Du coup, l'Ajax ici s'impose, du moins, c'est celle qui serait le plus adaptée
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2015, 17h09
  2. Réponses: 2
    Dernier message: 27/01/2011, 09h43
  3. Notification et changement dans une base de données ?
    Par vincentDec dans le forum Silverlight
    Réponses: 1
    Dernier message: 30/04/2010, 22h10
  4. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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