Aller au contenu
  • 0

SkQuery + MySQL


Question

Posté(e)

Bonjour, bonsoir, j'essaye d'enregistrer des valeurs dans une table, j'ai réussi tout à l'heure à crée une table mais je n'y arrive plus désormais mon skript :

 

script options:
   $ init com.mysql.jdbc.Driver
   $ db url jdbc:mysql://localhost:3306/server
   $ db username ///
   $ db password ///

options:
   table_prefix: test_

command /test:
   trigger:
       update "CREATE TABLE IF NOT EXISTS `{@table_prefix}%player%` (`Joueur` varchar(255),`Meurtre` varchar(255),`Mort` varchar(255)"
       wait 1 second
       update "UPDATE `{@table_prefix}%player%` SET `{@table_prefix}%player%`.`Mort` = `Mort`+%{deaths.%player%}% WHERE `{@table_prefix}%player%`.`Joueur` = '%player%'"

command /testmort:
   trigger:
       add 1 to {deaths.%player%}
       wait 3 ticks
       update "UPDATE `{@table_prefix}%player%` SET `{@table_prefix}%player%`.`Mort` = `Mort`+%{deaths.%player%}% WHERE `{@table_prefix}%player%`.`Joueur` = '%player%'"

 

De plus, je ne sais vraiment pas comment ajouter des valeurs que je puissent récupérer après pour l'ajouter sur un site !

 

Merci de votre aide !

3 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Oula !!!!!!

Tu veux créer une table pour chaque joueur ?!! :O

N'importe quoi !!!!!! Goos malade !!! Bachibouzouk !!!

 

Pour commencer pour créer ta table ta requête n'est pas trop mauvaise, ensuite ta table c'est un table, et chaque row, ligne de ton tableau correspondra à chaque joueur, il ne faut pas créer de table pour chaque joueur mais une row !!!!

De plus tu as oublié une parenthèse à la fin de ta création de table.

Utilise des types de valeurs correctes aussi (integer, varchar(16)).

Je te conseille aussi d'utiliser des IDs, c'est plus clair et tu as un petit ordre ;) mais là c'est pas trop utile :3

Là je mets Primary Key pour que ce soit le nom du joueur qui ordonne la table.

Imagine:

 

[spoiler=test_Izychiel + test_Synatiks]test_Izychiel

+---------+---------+-----+

| Player |Meurtre|Mort|

+---------+---------+-----+

| Izychiel| 12 | 45 |

+---------+---------+-----+

 

test_Synatiks

+---------+---------+-----+

| Player |Meurtre|Mort|

+---------+---------+-----+

| Synatiks| 132 | 5 |

+---------+---------+-----+

 

 

Ce serait largement mieux ainsi !

 

[spoiler=stats_player]stats_players

+---------+---------+-----+

| Player |Meurtre|Mort|

+---------+---------+-----+

| Synatiks| 132 | 5 |

+---------+---------+-----+

| Izychiel | 12 | 45 |

+---------+---------+-----+

| Notch | 23 | 78 |

+---------+---------+-----+

 

 

Donc pour cela ou tu nous fais cela lors du load du script:

[spoiler=Code]

on load:
   update "CREATE TABLE IF NOT EXISTS stats_player (`Joueur` varchar(16) PRIMARY KEY NOT NULL,`Meurtres` INT NOT NULL,`Morts` INT NOT NULL) ;"

command /testmort:
  trigger
     set {_morts} to the first element out of objects in column "Morts" from result of query "SELECT Morts FROM stats_player WHERE Joueur = '%player%' ;" and close
     set {_morts} to parsed as integer
     add 1 to {_morts}
#   Si la row du player existe déjà
     update "UPDATE stats_player SET Morts = {_morts} WHERE Joueur = '%player%' ;"
#   Si elle n'existe pas
     update "INSERT INTO stats_player (Joueur, Meurtres, Morts) VALUES ('%player%', 0, {_morts}) WHERE Joueur = '%player%' ;"
[code=lua][/spoiler]
Il faudra que tu fasses toi même la condition pour savoir si la row du joueur existe déjà :p
(Faudra aussi refaire les tabs)

 

  • 0
Posté(e)

Merci de ton aide, tu aurais un lien qui m'explique comment faire justement pour vérifier la conditions justement?

J'ai étais cherché sur la doc officiel de SkQuery mais je n'ai pas trouvé dans les conditions

Encore merci

  • 0
Posté(e)

Tout simplement avec la ligne

set {_morts} to the first element out of objects in column "Morts" from result of query "SELECT Morts FROM stats_player WHERE Joueur = '%player%' ;" and close

si quelque chose a été trouvé dans la BDD c'est que les stats du joueur ont déjà été mises, autrement la variable sera vide car rien n'a été trouvé, donc tu peux tester cela:

if "%{_morts}%" is "<none>":
 # Inexistant, pas de statistiques recueillies pour le joueur ayant réalisé la commande
else:
 # {_morts} stock donc le nombre de morts pour le joueur ayant fait la commande, c'est que ses stats sont dans la BDD

 

:D

 

Mets en résolu le sujet si c'est bon :p

×
×
  • 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.