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 :

Appeler une fonction quand une donnée MySQL change


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Par défaut Appeler une fonction quand une donnée MySQL change
    Bonjour,
    J'aurais souhaité que, dès qu'une donnée qui est dans ma base de données MySQL change, un son se produise pour l'utilisateur. (Un simple 'bip').
    Mais je n'ai aucune idée de comment faire...

    Merci de votre réponse !

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Tu peux tenter un script en ajax qui va vérifier périodiquement si une modification a été faite et lancer un son si c'est le cas.

    En tout cas pour lancer un son il faudra passer par javascript.
    Pour jouer un son tu peux t'inspirer de ça : http://www.developpez.net/forums/d64...er-javascript/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Par défaut
    Merci beaucoup, mais... Je suis vraiment nul en AJAX
    Tu pourrais m'aider en m'indiquant un tutorial ou une petit aide, je n'en trouve pas sur google..

  4. #4
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Ôhh ! Je m'insurge promptement là .

    Les tutos Ajax foisonnent. Par exemple celui-ci

    Même un vieux noob comme moi y suis arrivé. Donc c'est sûr, au regard de mes connaissances web nulles (vraiment au sens "NULL" du terme !) il y a encore 6 mois, je te confirme que c'est une technique abordable.

    Le vieux sage te dit: Aies confiance en toi petit scarabée.

  5. #5
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Pour te guider un peu :

    1er étape :
    Créer un script PHP qui va vérifier si il y a eu des modification ou pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Connexion à la base
     
    $req = mysql_query("Requête pour chercher si il y a des modif");
     
    if(il y a des modif){
       echo 'oui';
    }else{
       echo 'non';
    }

    2eme étape :
    Faire l'ajax :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    function getXhr(){
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    	   xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){ // Internet Explorer 
    	   try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    	}
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	   xhr = false; 
    	} 
    	return xhr
    }
     
    function verifierModif(){
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			if(xhr.responseText == 'oui'){
    				// code javascript pour jouer un son
    			}
    		}
    	}
    	xhr.open("GET","ajax.php",true);
    	xhr.send(null);
    }
     
    // Pour vérifier périodiquement toutes les secondes
    setInterval("verifierModif", 1000)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 146
    Par défaut
    Merci, Seb, mais, je suis un peu noob dans tout ça.
    Où est-ce que je met le script PHP ?
    Il faut le mettre dans function verifierModif(), non ? Car il doit vérifier toutes les x secondes si il y a un changement...

    D'ailleurs, si je met 100 millisecondes au lieu de 1000, cela va faire beaucoup lagger le site ?

  7. #7
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Salut,

    [EDIT]: Seb a déjà dit en 1 ligne ce que je décris en un roman...

    Je ne suis pas un spécialiste mais j'ai peur que tu ne mélanges client et serveur.

    En effet, je crois bien qu'il te faudra utiliser Ajax, car a priori, ta dB ne dispose pas d'interface client. (encore heureux !)

    Donc il faut que ta base (côté serveur) puisse dire au client "c'est Ok, j'ai bien les données". Auquel cas, tu pourras demander au client d'émettre un son.

    Je suggère donc de chercher une solution "ajax".

    Cela pourrait se passer comme cela:
    1) ton code PHP "A" (côté serveur): contrôle les paramètres de mise à jour de la dB. Puis il bascule sur le code js (client).
    2) ton code js (côté client): lance une requête de mise à jour de la dB auprès du serveur (la requete doit être sans les paramètres serveur évidemment,juste du type "eh, c'est ok côté serveur ?").
    3) ton code PHP "B" (côté serveur): il va vérifier si l'enregistrement s'est bien passé dans la dB (côté serveur) et renvoie un code "Ok" ou "Nok" au client.
    4) ton code js (côté client): selon le retour du serveur, il émet un son ou ce que tu veux.

    Comme cela, pas de confusion des genres entre client et serveur, tu évites les transmission de données sensibles. Client (js) et Serveur (PHP/HTML/MySQL) se parlent mais n'échangent pas de données sensibles.

    Tu peux probablement aussi le faire d'une façon plus simple. Du genre: quand le retour de ta requête est Ok, alors tu passes côté client avec un code js qui émet ton bip.

    Remarque: les bips et autres "tweeet" ont disparu depuis belle lurette. Pourquoi ne pas tout simplement afficher un petit message utilisateur dans une div affichée seulement si le retour de la dB est Ok ? C'est silencieux et ça fonctionne aussi bien.

    A+

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  3. Réponses: 1
    Dernier message: 25/10/2007, 18h04
  4. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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