Izychiel Posté(e) le 14 février 2016 Posté(e) le 14 février 2016 Salut ! Je réaliserai donc des tutoriels quand je m'ennuie, que ceux-ci n'existent pas et que vous en avez besoin ! :) Un sujet que pas mal de skripter aimerait connaître mais qui n'est pas beaucoup utilisé, les bases de données. Oui il existe 3-4 tutos sur cela mais ce n'est pas les mêmes BDD dont je vais vous parler, eux vous parlent de l'utilisation de prefixes dans vos variables pour qu'elles soient communes pour vos différents serveurs, cette techniques étant déjà dans différents tutoriels je vais vous parler d'une technique ancestrale permettant de vraiment toucher aux BDD, de réaliser de requêtes et de stocker ce que l'on veut, il est par exemple possible d'échanger un site web, stocker les logs de vos plugins de grief etc. Pour réaliser cela il vous suffira de posséder une base de donnée, de Skript et de l'addon SkQuery. Je vous conseille d'apprendre à utiliser les bases de la syntaxe MySQL et de connaître les différents termes tale, colonne et ligne -> C'est pas mal ici <- sachant que le SQL c'est l'anglais assez simple :) Si vous ne possédez pas de base de donnée regardez ici c'est gratuit ;) -> http://freemysqlhosting.net/ Je vais d'abord vous présenter les différentes lignes de code qui servent à réaliser cette liaison serveur - BDD. Le début, la partie options, ici vous insérez au début de votre script les informations permettant la liaison au serveur MySQL, sous cette forme: script options: $ init com.mysql.jdbc.Driver $ db url jdbc:mysql://localhost:3306/NomDeMaBDD $ db username IdentifiantDeMaBDD $ db password MotDePasseDeMaBDD Deuxième ligne de code, elle permet de récupérer dans une variable unique le premier résultat d'une requête: set {_variable} to the first element out of objects in column "colonne" from result of query "SELECT colonne FROM table WHERE colonne1 = '%player%'" and close La suivante permettant de stocker dans une variable liste toutes les données correspondantes à la requête: add objects in column "colonne" from result of query "SELECT colonne FROM table LIMIT 1,45" and close to {_variable::*} Et enfin une dernière ligne qui permet de ne faire que réaliser une requête, elle ne permet pas de récupérer des données: update "INSERT INTO table (colonne1,colonne2, colonne3) VALUES ('%player%', '%uuid of player%', '%{rank::%player%}%')" Deux trois syntaxes pratiques pour le bases: "SELECT colonne FROM table WHERE colonne1 = '%player%' LIMIT 34,45" -> sélectionner toutes les données de la colonne 'colonne' où la valeur de la colonne 'colonne1' est '%player%' entre la 34e et la 79e ligne dans la table 'table' "INSERT INTO table (colonne1,colonne2, colonne3) VALUES ('%player%', '%uuid of player%', '%{rank::%player%}%')" -> insérer dans la table 'table' avec les valeurs '%player%', '%uuid of player%', '%{rank::%player%}%' dans les colonnes 'colonne1', 'colonne2' et 'colonne3' "CREATE TABLE IF NOT EXISTS table (id int(11) NOT NULL AUTO_INCREMENT, pseudo_vendeur varchar(32) NOT NULL) ;" -> créer la table 'table' avec une colonne 'id' qui sera un nombre non nulle et pseudo_vendeur non nul une suite de caractères limités à 32 N'hésitez pas à me remercier, me critiquer et me conseiller ! ;) 4
Mastersfelix Posté(e) le 15 février 2016 Posté(e) le 15 février 2016 Perso, j'ai pas compris grand chose mais sa doit surement venir du fait que je ne fais que du Java / Html / Css / Javascript / Php x) Mais en tout cas, très utile si jamais qqun a des questions sur ce sujet :D
GioLeGamer Posté(e) le 15 février 2016 Posté(e) le 15 février 2016 Salut ! Je réaliserai donc des tutoriels quand je m'ennuie, que ceux-ci n'existent pas et que vous en avez besoin ! :) Un sujet que pas mal de skripter aimerait connaître mais qui n'est pas beaucoup utilisé, les bases de données. Oui il existe 3-4 tutos sur cela mais ce n'est pas les mêmes BDD dont je vais vous parler, eux vous parlent de l'utilisation de prefixes dans vos variables pour qu'elles soient communes pour vos différents serveurs, cette techniques étant déjà dans différents tutoriels je vais vous parler d'une technique ancestrale permettant de vraiment toucher aux BDD, de réaliser de requêtes et de stocker ce que l'on veut, il est par exemple possible d'échanger un site web, stocker les logs de vos plugins de grief etc. Pour réaliser cela il vous suffira de posséder une base de donnée, de Skript et de l'addon SkQuery. Je vous conseille d'apprendre à utiliser les bases de la syntaxe MySQL et de connaître les différents termes tale, colonne et ligne -> C'est pas mal ici <- sachant que le SQL c'est l'anglais assez simple :) Je vais d'abord vous présenter les différentes lignes de code qui servent à réaliser cette liaison serveur - BDD. Le début, la partie options, ici vous insérez au début de votre script les informations permettant la liaison au serveur MySQL, sous cette forme: script options: $ init com.mysql.jdbc.Driver $ db url jdbc:mysql://localhost:3306/NomDeMaBDD $ db username IdentifiantDeMaBDD $ db password MotDePasseDeMaBDD Deuxième ligne de code, elle permet de récupérer dans une variable unique le premier résultat d'une requête: set {_variable} to the first element out of objects in column "colonne" from result of query "SELECT colonne FROM table WHERE colonne1 = '%player%'" and close La suivante permettant de stocker dans une variable liste toutes les données correspondantes à la requête: add objects in column "colonne" from result of query "SELECT colonne FROM table LIMIT 1,45" and close to {_variable::*} Et enfin une dernière ligne qui permet de ne faire que réaliser une requête, elle ne permet pas de récupérer des données: update "INSTERT INTO table (colonne1,colonne2, colonne3) VALUES ('%player%', '%uuid of player%', '%{rank::%player%}%')" Deux trois syntaxes pratiques pour le bases: "SELECT colonne FROM table WHERE colonne1 = '%player%' LIMIT 34,45" -> sélectionner toutes les données de la colonne 'colonne' où la valeur de la colonne 'colonne1' est '%player%' entre la 34e et la 79e ligne dans la table 'table' "INSTERT INTO table (colonne1,colonne2, colonne3) VALUES ('%player%', '%uuid of player%', '%{rank::%player%}%')" -> insérer dans la table 'table' avec les valeurs '%player%', '%uuid of player%', '%{rank::%player%}%' dans les colonnes 'colonne1', 'colonne2' et 'colonne3' "CREATE TABLE IF NOT EXISTS table (id int(11) NOT NULL AUTO_INCREMENT, pseudo_vendeur varchar(32) NOT NULL) ;" -> créer la table 'table' avec une colonne 'id' qui sera un nombre non nulle et pseudo_vendeur non nul une suite de caractères limités à 32 N'hésitez pas à me remercier, me critiquer et me conseiller ! ;) GG tu m'as "piqué" le tutoriel à la bouche on peut dire, gg ^^
Izychiel Posté(e) le 15 février 2016 Auteur Posté(e) le 15 février 2016 GG tu m'as "piqué" le tutoriel à la bouche on peut dire, gg ^^ xD Comme je le dis, je me faisais chier, un mec me demandait de l'aide pour ça et pas grand monde sait s'en servir :')
Protoxy Posté(e) le 15 février 2016 Posté(e) le 15 février 2016 Tu pourrais juste me faire deux trois lignes pour un système de Coins: Juste avec un: /coins add [player] [amount] /coins remove [player] [amount] /coins check [<player>] J'ai beau essayé m'ai j'y arrive toujours pas
GioLeGamer Posté(e) le 15 février 2016 Posté(e) le 15 février 2016 xD Comme je le dis, je me faisais chier, un mec me demandait de l'aide pour ça et pas grand monde sait s'en servir :') ^^
Invité Posté(e) le 16 février 2016 Posté(e) le 16 février 2016 Merci beaucoup, sa me permet de faire un system de coins pour mon BungeeCord :)
Invité Posté(e) le 22 février 2016 Posté(e) le 22 février 2016 script options: $ init com.mysql.jdbc.Driver $ db url jdbc:mysql://localhost:3306/OnlineStaff $ db username monuser $ db password monmdp on load: broadcast "&cSysteme de Stastiques V2 activé !" update "CREATE TABLE IF NOT EXISTS table (id int(11) NOT NULL AUTO_INCREMENT, pseudo_vendeur varchar(32) NOT NULL) ;" La table ne se créé pas :/ que faire
Izychiel Posté(e) le 22 février 2016 Auteur Posté(e) le 22 février 2016 Je te déconseille tout d'abord d'utiliser 'table' comme nom de table, de plus si tu as des problèmes avec la création c'est que ou tu as des erreurs dans la console par rapport à la connexion ou ton event n'est pas enclenché :)
Invité Posté(e) le 22 février 2016 Posté(e) le 22 février 2016 Je te déconseille tout d'abord d'utiliser 'table' comme nom de table, de plus si tu as des problèmes avec la création c'est que ou tu as des erreurs dans la console par rapport à la connexion ou ton event n'est pas enclenché :) Le probleme c'est que j'ai 0 erreurs dans la console xD
Izychiel Posté(e) le 22 février 2016 Auteur Posté(e) le 22 février 2016 Le probleme c'est que j'ai 0 erreurs dans la console xD Tu as essayé avec un autre nom ?
Invité Posté(e) le 23 février 2016 Posté(e) le 23 février 2016 EDITED : J'ai mis à jour vers la dernière version de SkQuery mais j'obitens 2 erreurs :
Izychiel Posté(e) le 23 février 2016 Auteur Posté(e) le 23 février 2016 J'ai mis à jour vers la dernière version de SkQuery mais j'obitens 2 erreurs : Toujours SkQuery3 ?
Invité Posté(e) le 23 février 2016 Posté(e) le 23 février 2016 Hmm SkQuery4 je crois je vais test avec le 3
Invité Posté(e) le 23 février 2016 Posté(e) le 23 février 2016 Donc, quand je met SQuery 3 j'ai plein de message dans ma console, quand je met skQuery 4, j'ai le screen que je tes montrer en haut :/
Izychiel Posté(e) le 23 février 2016 Auteur Posté(e) le 23 février 2016 Donc, quand je met SQuery 3 j'ai plein de message dans ma console, quand je met skQuery 4, j'ai le screen que je tes montrer en haut :/ Il te faut SkQuery3, après essaie de corriger tes erreurs :')
Invité Posté(e) le 23 février 2016 Posté(e) le 23 février 2016 [14:19:21] [skript update thread/INFO]: [0;37;22m[[0;33;22mSkript[0;37;22m][m You're currently running a [3mbeta[m version of Skript, and no new [3mstable[m version is available. Please note that you have to update to newer beta versions manually![m [14:19:24] [server thread/INFO]: [0;37;22m[[0;33;22mSkript[0;37;22m][m Reloading [0;33;22mbdd.sk[m...[m [14:19:26] [server thread/INFO]: [0;32;1mScieeences Plugins Activer ![m [14:19:26] [server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect table definition; there can be only one auto column and it must be defined as a key [14:19:26] [server thread/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [14:19:26] [server thread/WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) [14:19:26] [server thread/WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) [14:19:26] [server thread/WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662) [14:19:26] [server thread/WARN]: at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581) [14:19:26] [server thread/WARN]: at com.w00tmast3r.skquery.elements.effects.EffSQLUpdate.execute(EffSQLUpdate.java:32) [14:19:26] [server thread/WARN]: at ch.njol.skript.lang.Effect.run(Effect.java:54) [14:19:26] [server thread/WARN]: at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:63) [14:19:26] [server thread/WARN]: at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:91) [14:19:26] [server thread/WARN]: at ch.njol.skript.lang.Trigger.execute(Trigger.java:53) [14:19:26] [server thread/WARN]: at ch.njol.skript.events.EvtScript.register(EvtScript.java:63) [14:19:26] [server thread/WARN]: at ch.njol.skript.ScriptLoader.loadScript(ScriptLoader.java:516) [14:19:26] [server thread/WARN]: at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:268) [14:19:26] [server thread/WARN]: at ch.njol.skript.SkriptCommand.onCommand(SkriptCommand.java:155) [14:19:26] [server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [14:19:26] [server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [14:19:26] [server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:642) [14:19:26] [server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:628) [14:19:26] [server thread/WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:404) [14:19:26] [server thread/WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:368) [14:19:26] [server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [14:19:26] [server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [14:19:26] [server thread/WARN]: at java.lang.Thread.run(Unknown Source) [14:19:26] [server thread/INFO]: [0;37;22m[[0;33;22mSkript[0;37;22m][m Successfully reloaded [0;33;22mbdd.sk[m.[m 0 erreurs dans le skript mais sa dans la console :/
Izychiel Posté(e) le 23 février 2016 Auteur Posté(e) le 23 février 2016 Faut suivre le tutoriel à la lettre aussi ! xD Déjà je t'ai dit de ne pas mettre "table" comme nom de table -> 1 problème résolu Ensuite tu as oublié "primary key(id)" à la fin Ce qui donne: CREATE TABLE IF NOT EXISTS autreChose (id int(11) NOT NULL AUTO_INCREMENT, pseudo_vendeur varchar(32) NOT NULL, primary key(id))
Invité Posté(e) le 23 février 2016 Posté(e) le 23 février 2016 Faut suivre le tutoriel à la lettre aussi ! xD Déjà je t'ai dit de ne pas mettre "table" comme nom de table -> 1 problème résolu Ensuite tu as oublié "primary key(id)" à la fin Ce qui donne: Effectivement sa fonctionne maintenant :) je ten remercis :p
Izychiel Posté(e) le 24 février 2016 Auteur Posté(e) le 24 février 2016 J'aurais aimé plus d'informations :/ Pose moi des questions j'y répondrai :)
Protoxy Posté(e) le 24 février 2016 Posté(e) le 24 février 2016 Je voudrais créer une table, ça je sais faire, mais je sais pas ou mettre le pseudo du joueur avec ses coins dans la table. Pour que je puisse ajouter des coins et en supprimer.
Izychiel Posté(e) le 24 février 2016 Auteur Posté(e) le 24 février 2016 Je voudrais créer une table, ça je sais faire, mais je sais pas ou mettre le pseudo du joueur avec ses coins dans la table. Pour que je puisse ajouter des coins et en supprimer. Mon tuto n'est pas un tuto sur le langage SQL, je l'ai pourtant écrit, j'ai donné un lien pour cela, tu pourras ensuite créer facilement ;) Mais sinon tu peux les mettre n'importe où :3
Protoxy Posté(e) le 24 février 2016 Posté(e) le 24 février 2016 J'ai lu tout le tutoriel de haut en bas plusieurs fois, et je comprends toujours pas. Le tutoriel et pour lire une donnée, ça je sais faire mais c'est pas pour définir des données.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant