Aller au contenu
Izychiel

Tutennuies - Base de données - SkQuery sans SQLibrary et les préfixes

Messages recommandés

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

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
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://

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
/

 

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:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Deuxième ligne de code, elle permet de récupérer dans une variable unique le premier résultat d'une requête:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

La suivante permettant de stocker dans une variable liste toutes les données correspondantes à la requête:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

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:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Deux trois syntaxes pratiques pour le bases:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

N'hésitez pas à me remercier, me critiquer et me conseiller ! ;)

  • J'aime 4

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.
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:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Deuxième ligne de code, elle permet de récupérer dans une variable unique le premier résultat d'une requête:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

La suivante permettant de stocker dans une variable liste toutes les données correspondantes à la requête:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

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:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Deux trois syntaxes pratiques pour le bases:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

N'hésitez pas à me remercier, me critiquer et me conseiller ! ;)

GG tu m'as "piqué" le tutoriel à la bouche on peut dire, gg ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Merci beaucoup, sa me permet de faire un system de coins pour mon BungeeCord :)

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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é :)

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
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

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

EDITED :

 

J'ai mis à jour vers la dernière version de SkQuery mais j'obitens 2 erreurs :

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Hmm SkQuery4 je crois je vais test avec le 3

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

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 :/

Partager ce message


Lien à poster
Partager sur d’autres sites
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 :')

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

[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 :/

Partager ce message


Lien à poster
Partager sur d’autres sites

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:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
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

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.