tutur1004 58 Posté : 10 janvier 2018 Skript-db : L'addon qui va vous faire aimer le SQL ! Bonjour, je présente aujourd'hui mon premier tuto sur le Forum, j'espère qu'il servira au plus grand nombre d'entre vous ! Avant de lire ce tuto, il est nécessaire d'avoir de légères bases en SQL, si vous n'en avez pas, pas de panique je tout de même vais aborder les principes de base. Difficultés : ✪✪✪✫✫ Temps d'apprentissage : 30mn si vous connaissez le SQL ~ 2h sinon. Le SQL: Bon, vue que tout le monde ne sait pas forcément ce qu'est le SQL et pour pouvoir toucher un maximum de monde à travers ce tuto je vais en parler un peu ! Le SQL, c'est un langage de programmation, spécialement créé pour l'exploitation de bases de données, c'est pour cette raison qu'on associe toujours "SQL" à "Data Base". En gros, le SQL est le langage qui va vous permettre de gérer votre base de données. Par ailleurs, le SQL permet d'utiliser vos Bases dans plusieurs langages de programmation (PHP, C++, Java, skript !). L'addon Skript-db permet donc d'utiliser le SQL sur skript dans toutes ses mesures. La Base de données: Pour le tuto que je vais aborder, nous allons uniquement traiter de bases de données de type "MySQL", je vous recommande vivement, si vous débutez, d'utiliser une base MySQL avec un accès PYPMyAdmin, qui vous permet d'avoir un panel graphique sur votre base de donnée et une assistance pour la rédaction de vos requêtes SQL (Très pratique pour la suite). Pour expliquer rapidement, la base de données va stocker vos "informations" dans des "tables" organisées en colonnes et classés en plusieurs lignes. Résumé: Vous avez compris, le SQL vous permet d'exploiter des bases de données dans plusieurs programmes de langages différents, par exemple, vous pouvez grâce au SQL, partager des informations entre plusieurs serveur minecraft, ou entre un serveur minecraft et un site web. Skript-db: Voilà enfin le chapitre intéressant ! L'addon est ULTRA basique, mais ULTRA complet. Il permet au contraire des autres addons, d'exécuter n'importe quelle requête de SQL, en seulement 1 ET UNIQUEMENT 1 effect (en vrai il y en a 2 mais ils fonctionnement de la même manière l'un est juste plus complet donc disons 1 seul effect). Donc, comme je l'ai dit il y a 2 effects pour effectuer des requêtes (query) SQL et 2 expressions, l'une pour se connecter une base de donnée et une autre expression pour récupérer vos erreurs SQL. Concrètement nous allons donc utiliser "seulement" l'expression pour se connecter, et l'effect pour les effectuer des requêtes. Ce connecter à votre BDD: Alors déjà, j'aime beaucoup cet addon, car contrairement aux autres addons qui "gèrent" le SQL, il permet de se connecter à plusieurs bases différentes dans le même skript, et surtout de pouvoir les utiliser dans d'autres skript sans les rappeler. C'est magique, non OPTIMISÉ !! Donc sans plus attendre on ce connecte: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. {sql}, ça va être la valeur avec laquelle vous aller pouvoir effectuer vos requêtes, ce qui veut dire que si vous voulez plusieurs bases, il suffit d'utiliser des vars différentes ({sql.1} puis {sql.2} ... etc ...). Voilà, rien de compliqué c'est bon vous êtes connecté, une fois cette expression utilisée plus besoin de l'utiliser (Je vous conseil de la mettre dans un "on load")! Effectuer une requête SQL: Et bien, c'est tout l'intérêt de l'addon, alors comme je l'ai dit, il y a 2 effects différents mais qui permettent de faire légèrement la même chose. La différence c'est que l'un permet d'exécuter une requête 'unsafe' stockée dans une variable, et l'autre d'exécuter un texte brut (comprenez sans variables). Vous l'aurez compris, l'effect 'unsafe' permet donc d'exécuter des variable, ce qui est plutôt utile comparé à l'autre. Je ne vais donc montrer que l'effect 'unsafe' dans ce tuto. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Bon voilà, un bon aperçue de l'effect, alors comment l'utiliser ? - Premièrement il faut savoir si vous allez avoir besoin du paramètre de retour ou non, c'est simple, il y a 2 types de requêtes SQL, celles où vous modifiez la BDD, et celles où vous lisez la BDD, dans le cas où vous écrivez, pas besoin de retour, dans l'autre cas il vous faut un retour, évidement. - Ensuite, il vous faut définir la requête {_requete}, c'est simplement une variable text. [spoiler=Application et Exemples] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. L'exemple vous paraît compliqué ? - Si vous n'avez pas compris le 'insert into', je vous conseille d'apprendre le SQL. - Si vous n'avez pas compris le {_output::*}, je vais vous l'expliquer. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Voilà, j'espère avoir suffisamment détaillé le fonctionnement de l'addon, il est assez simple à comprendre et utilisé, vous pourrez le trouver sur le git-hub de btk5h ou sur mon post avec la liste des addons (Maj. en janvier 2018 !) Tutur1004 ! 7 Partager ce message Lien à poster Partager sur d’autres sites
eaglezlpha 30 Répondu : 10 janvier 2018 Génial ! 1 Partager ce message Lien à poster Partager sur d’autres sites
Twixer26 1 Répondu : 10 janvier 2018 Merci, c'est mieux que sur la doc officiel ! :D 1 Partager ce message Lien à poster Partager sur d’autres sites
eaglezlpha 30 Répondu : 10 janvier 2018 Généralement la doc officiel est en anglais + y'a rarement l'utilité y'a que des syntax 2 Partager ce message Lien à poster Partager sur d’autres sites
LapizzadelaMama 0 Répondu : 22 novembre 2018 Bonjour, désolé de déterrer ce topic ;) Mais comment je fais pour enlever qqch de la base de donnée ? ex : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Ca ne marche pas ;( Partager ce message Lien à poster Partager sur d’autres sites
Vengelis_ 301 Répondu : 25 novembre 2018 Le 22/11/2018 à 19:42, LapizzadelaMama a dit : Bonjour, désolé de déterrer ce topic Mais comment je fais pour enlever qqch de la base de donnée ? ex : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Ca ne marche pas ;( Regarde si ton exécution SQL n’est pas foireuse parce que je doute que ta commande SQL soit bonne Partager ce message Lien à poster Partager sur d’autres sites
LapizzadelaMama 0 Répondu : 27 novembre 2018 Yes merci, j'ai trouvé ! Partager ce message Lien à poster Partager sur d’autres sites
Uuraniumm_PROD 7 Répondu : 6 janvier 2019 Est-ce possible d'effectuer une vérification ? Je souhaite, dès que j'aurai appris à maitriser le code faire un système de monnaie. Le problème, c'est que pour créer un shop par exemple, il faut bien vérifier si le joueur a assez de monnaie pour acheter le produit désiré... Est-ce possible alors par exemple d'envoyer une requête pour savoir si le joueur a assez d'argent dans la table ? Partager ce message Lien à poster Partager sur d’autres sites
noftaly 497 Répondu : 6 janvier 2019 Oui c'est possible, et c'est même expliqué dans le tutoriel Pas exactement cet exemple, mais a partir de ce qui a été donné, c'est tout a fait possible 1 Partager ce message Lien à poster Partager sur d’autres sites
Uuraniumm_PROD 7 Répondu : 7 janvier 2019 d'accord merci Partager ce message Lien à poster Partager sur d’autres sites
> NoaGamingFR 247 Répondu : 6 février 2019 Bonjour, je voudrais m'intèrésser au BDD dans skript, car j'ai un network [bungee] (pour l'instant en local, mais j'ai déjà le vps pour...) j'aurais donc voulu avoir un exemple/une aide afin d'avoir dans ma BDD une table monnaie par exemple, avec - joueur - monnaie (et pouvoir lire et écrire dans cette table, car j'ai compris le tuto, mais pas très bien pour faire ce type de trucs !) Si vous préferez que je créer un sujet, je peut le faire Partager ce message Lien à poster Partager sur d’autres sites
tutur1004 58 Répondu : 27 février 2019 Je pense que ton problème ce situe plus sur de l'aide en SQL que avec Skript-db, fait un new sujet et MP le moi ! Partager ce message Lien à poster Partager sur d’autres sites
skatouxytb 1 Répondu : 18 mars 2019 (modifié) EDIT: Merci beaucoup pour ce tutoriel ! J'ai trouvé comment faire, merci beaucoup. Modifié 18 mars 2019 par skatouxytb 1 Partager ce message Lien à poster Partager sur d’autres sites
Thib93 0 Répondu : 23 avril 2020 Bonjour, Skript-db fonctionne-t-il en 1.7.10 ? Sous Cauldron. Merci Partager ce message Lien à poster Partager sur d’autres sites
tutur1004 58 Répondu : 30 avril 2021 Le 23/04/2020 à 14:50, Thib93 a dit : Bonjour, Skript-db fonctionne-t-il en 1.7.10 ? Sous Cauldron. Merci Désolé, je n'ai pas la réponse à cette question :/ Partager ce message Lien à poster Partager sur d’autres sites
nymphisios 0 Répondu : 27 mars 2022 Bonjour ! Alors voilà, je me heurte à un problème majeur malgré avoir des connaissances en SQL ainsi que bien suivi le tuto... J'ai besoin de faire : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. (j'ai simplifié la requête en retirant les alias, jointures...) Cette requête marche à merveille si je remplace {_variable} par 'la valeur en texte brut' ... Je n'ai aucun résultat à ma requête si j'utilise '{_variable}' ou même '%uuid of player%' - et pourtant j'ai vérifié, la variable a bien la bonne valeur. Je récupère <None> constamment si je mets une variable dans une requête... Quelqu'un saurait pourquoi ? Merci ! Partager ce message Lien à poster Partager sur d’autres sites
Wast 1 Répondu : 7 avril 2022 Le 27/03/2022 à 16:18, nymphisios a dit : Bonjour ! Alors voilà, je me heurte à un problème majeur malgré avoir des connaissances en SQL ainsi que bien suivi le tuto... J'ai besoin de faire : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. (j'ai simplifié la requête en retirant les alias, jointures...) Cette requête marche à merveille si je remplace {_variable} par 'la valeur en texte brut' ... Je n'ai aucun résultat à ma requête si j'utilise '{_variable}' ou même '%uuid of player%' - et pourtant j'ai vérifié, la variable a bien la bonne valeur. Je récupère <None> constamment si je mets une variable dans une requête... Quelqu'un saurait pourquoi ? Merci ! Bonjour Il me semble qu'il manque les "%%" autour de ta variable ? (Je tente on sait jamais) 1 Partager ce message Lien à poster Partager sur d’autres sites
tutur1004 58 Répondu : 7 avril 2022 Le 27/03/2022 à 16:18, nymphisios a dit : Bonjour ! Alors voilà, je me heurte à un problème majeur malgré avoir des connaissances en SQL ainsi que bien suivi le tuto... J'ai besoin de faire : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. (j'ai simplifié la requête en retirant les alias, jointures...) Cette requête marche à merveille si je remplace {_variable} par 'la valeur en texte brut' ... Je n'ai aucun résultat à ma requête si j'utilise '{_variable}' ou même '%uuid of player%' - et pourtant j'ai vérifié, la variable a bien la bonne valeur. Je récupère <None> constamment si je mets une variable dans une requête... Quelqu'un saurait pourquoi ? Merci ! Montre un peu plus ton code. Mais j'ai dans l'idée que tu n'as pas suivi pleinement mon explication sur le tuto, j'ai expliqué qu'il existait 2 fonctions, une basique et une "unsafe", comme expliqué si tu souhaites utiliser des variables skript, tu dois définir une variable de type texte avec le contenu de ta requête PUIS ENSUITE l'exécuter avec l'expression "unsafe". Si tu as plus de questions, je t'invite à passer sur le Discord, n'hésite pas à dire ici si la solution fonctionne pour toi. MileKat Partager ce message Lien à poster Partager sur d’autres sites