Besoin d'aide MySQL
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Besoin d'aide MySQL



  1. #1
    GabrielRioux

    Besoin d'aide MySQL


    ------

    Salut à tous,

    Comment aller vous ? Je fait mes début dans le monde de la programmation et j'ai vraiment un niveau d'amateur. Afin de m'amuser j'aide des amis à moi à développer leur serveur minecraft ainsi que leur siteweb. Je viens de creer le site à l'aide d'un CMS, il est entièrement en PHP et est modifiable à l'infini. Il utilise une BBD MySQL afin de stocké son information. Je ne sais pas si certains d'entre vous connaissent le fonctionnement de minecraft. Il est possbile d'ajouter des plugins java qui viennent en quelque sortes ajouter des trucs aux jeux. (Sur un serveur) J'ai insallé un plugin nommé TokenManager, (En gros il crée une économie au seins du serveur) Il est possible de le connecter sur un BBD MySQL afin qu'il y stocke ces donnée.


    Alors voilà ou je veux en venir, le cms que j'ai utilisé pour le site (Azurium) permet l'achat de points de boutique sur le site, je souhaite en quelque sorte synchroniser les points de boutique et sur le site et sur le serveur donc la balance du plugin TokenManager. Puisque les deux sont sur la même BBD c'est forcément possible.


    J'ai déjà vu quelqu'un le faire en utilisant un autre plugin et le même CMS à l'aide d'un script SQL qu'il éxécutait dans la BBD

    Le plugin était TheNewEconomy
    Et le script était le suivant
    Code:
    delimiter |
    	
    DROP TRIGGER IF EXISTS `before_users_insert_tne`|
    	
    CREATE TRIGGER `before_users_insert_tne` BEFORE INSERT ON `users` FOR EACH ROW
    	
    BEGIN
    	
        
    	
        -- If player is registered in-game but not on the website we set the correct in-game balance to the web user
    	
        IF EXISTS(SELECT tne_users.display_name FROM tne_users WHERE tne_users.display_name = NEW.name)  THEN
    	
            SET NEW.money = (SELECT tne_balances.balance FROM tne_balances INNER JOIN tne_users ON tne_balances.uuid = tne_users.uuid AND tne_users.display_name = NEW.name );
    	
        END IF;
    	
        
    	
    END|
    	
     
    	
    DROP TRIGGER IF EXISTS `before_tne_balances_insert_tne`|
    	
    CREATE TRIGGER `before_tne_balances_insert_tne` BEFORE INSERT ON tne_balances FOR EACH ROW
    	
    BEGIN
    	
        
    	
        -- If player is registered on web before in-game and has money we set correct web balance to the in-game user
    	
        IF EXISTS(SELECT users.name FROM users WHERE users.name = (SELECT tne_users.display_name FROM tne_users WHERE NEW.uuid = tne_users.uuid) ) THEN
    	
            SET NEW.balance = (SELECT users.money FROM users WHERE users.name = (SELECT tne_users.display_name FROM tne_users WHERE NEW.uuid = tne_users.uuid) );
    	
        END IF;
    	
           
    	
    END|
    	
     
    	
     
    	
    DROP TRIGGER IF EXISTS `after_tne_balances_update_tne`|
    	
    CREATE TRIGGER `after_tne_balances_update_tne` AFTER UPDATE ON tne_balances FOR EACH ROW
    	
    BEGIN
    	
        
    	
        -- If player is registered and get in-game currency, update `users.money`
    	
        IF EXISTS(SELECT users.name FROM users WHERE users.name = (SELECT tne_users.display_name FROM tne_users WHERE NEW.uuid = tne_users.uuid) ) THEN
    	
            -- check if values are different to prevent infinit loop
    	
            IF (SELECT users.money FROM users WHERE users.name = (SELECT tne_users.display_name FROM tne_users WHERE NEW.uuid = tne_users.uuid) ) <> NEW.balance THEN
    	
                UPDATE users SET users.money = NEW.balance WHERE users.name = (SELECT tne_users.display_name FROM tne_users WHERE NEW.uuid = tne_users.uuid);
    	
            END IF;
    	
     
    	
        END IF;
    	
           
    	
    END|
    	
     
    	
    DROP TRIGGER IF EXISTS `after_users_update_tne`|
    	
    CREATE TRIGGER `after_users_update_tne` AFTER UPDATE ON `users` FOR EACH ROW
    	
    BEGIN
    	
        
    	
        -- If player is registered and get web money, update his `tne_balances.balance`
    	
        IF EXISTS(SELECT tne_users.display_name FROM tne_users WHERE tne_users.display_name = NEW.name)  THEN
    	
        
    	
            IF (SELECT tne_balances.balance FROM tne_balances WHERE tne_balances.uuid = (SELECT tne_users.uuid FROM tne_users WHERE tne_users.display_name = NEW.name) ) <> NEW.money THEN
    	
                UPDATE tne_balances SET tne_balances.balance = NEW.money WHERE tne_balances.uuid = (SELECT tne_users.uuid FROM tne_users WHERE tne_users.display_name = NEW.name);
    	
            END IF;
    	
            
    	
        END IF;
    	
        
    	
    END|
    	
     
    	
    delimiter ;
    J'ai essayer de réutiliser la même méthode et la liaison entre le serveur et le site a marcher, le seul problème est que le plugin est non-fonctionel sur mon serveur étant donnée qu'il en compétition avec les autres plugins d'économie


    Votre aide serait extrêmement appréciée.

    Si jamais vous voulez m'ajouter sur discord pour pouvoir échanger plus facilement mon id est : Banda_Gab#2556

    -----

  2. #2
    Ikhar84
    Animateur Informatique

    Re : Besoin d'aide MySQL

    Bonsoir !

    Ça veut dire quoi :
    Citation Envoyé par GabrielRioux Voir le message
    le seul problème est que le plugin est non-fonctionel sur mon serveur étant donnée qu'il en compétition avec les autres plugins d'économie
    Un message d'erreur ?

    Le script se content de créer des triggers, sorte d'écouteurs qui se déclenchent avec "l'evénement" donné...

    Pas de raison qu'il se plante sauf si les tables et champs référencées n'existent pas ?
    J'ai glissé Chef !

  3. #3
    GabrielRioux

    Re : Besoin d'aide MySQL

    Le script marche très bien, et s'éxécute. C'est au niveau du jeux, je suis dans l'incapacité de faire fonctionner le plugin en particulier ( TheNewEconomy ) puisqu'il n'est pas compatatible avec les autres plugins. Alors ma solution est d'utiliser un autre plugin qui lui est compatible(TokenManager). Or, niveau sql je m'y connais pas, est-ce que garder la même forme de script mais seulement remplacer les tables par celles créées par le plugin compatible marcherait ?

Discussions similaires

  1. aide php mysql
    Par nikos94 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 10/12/2014, 14h45
  2. besoin d aide en php /mysql
    Par dalida1111 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 27/10/2013, 09h52
  3. admission pour post-bac besoin aurait besoin d 'une grande aide svp
    Par invite0b129661 dans le forum Orientation avant le BAC
    Réponses: 0
    Dernier message: 24/02/2010, 14h53
  4. besoin d'aide exercices pour m'antrainer mes j'ai besoin d'aide
    Par invite5e082da7 dans le forum Physique
    Réponses: 4
    Dernier message: 06/12/2008, 21h37