Aller au contenu
  • 0

utilisation de mysql dans les quettes


Mandrilux

Question

Bonjour

je suis a la recherche d'information concernant le fonctionnement de mysql dans les quette

 

j'ai un table qui comporte un nombre , ce nombre correspondant au nombre de personne par un joueur , elle comporte également le nom du joueur

 

j'aimerai savoir comment enregistrer les informations dans ma base de donnée avec une quette

 

j'avais lu un fils sur funky mais impossible de le retrouver

 

Version des files : j(utilise les files 2012

Domaine (Base de données, Core, etc.) : quest / mysql

Votre niveau (débutant, intermédiaire, avancé) : intermedaire

 

 

je vous remercie d'avance de votre aide

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Lien vers le commentaire
  • Réponses 16
  • Created
  • Dernière réponse

Top Posters For This Question

Top Posters For This Question

16 réponses à cette question

Messages recommandés

  • 0

function mysql_query(query,user,pass,db,ip)
   local pre = ''
   if query == '' or query == nil then
       error("Query muss gesetzt sein!")
   end
   user = user or ql.mysql["user"]
   pass = pass or ql.mysql["pass"]
   ip = ip or ql.mysql["ip"]
   if user ~= '' and user ~= nil then pre = pre..' -u'..user end
   if pass ~= '' and pass ~= nil then pre = pre..' -p'..pass end
   if db ~= '' and db ~= nil then pre = pre..' -D'..db end
   if ip ~= '' and ip ~= nil then pre = pre..' -h'..ip end
   math.randomseed(os.time()); local rand = math.random(0,10^7) -- Erstellen der Pfadvariable
   local path = 'data/mysql_output_'..os.time()..'_'..rand..'_'..pc.get_vid()
   os.execute ("mysql "..pre.." --execute=\""..query.."\" > "..path) -- Laden und Auflisten der Dateiinhalte
   local fi,q = io.open(path,"r"),{["l"] = {},["out"]={}}
   if fi == nil then
       return "ERROR"
   end
   for line in fi:lines() do table.insert(q.l,(split(line,"\t"))) end
   os.remove(path)
   if type(q.l[1]) ~= "table" then 
       return "ERROR"
       --error("Fehler bei der MySQL Verbindung oder bei der Rückgabe! Abbruch!")
   end
   local ix = 0
   table.foreachi(q.l,function(i,l)
       if i > 1 then table.foreach(l,function(i2,l2)
           if q.out[q.l[1][i2]] == nil then q.out[q.l[1][i2]] = {} end
           local c =  tonumber(l2)
           if type(c) == "number" and l2 == tostring(c) then
               q.out[q.l[1][i2]][i-1] = c
           else
               q.out[q.l[1][i2]][i-1] = l2
           end
       end) end
   end)
   -- ENDE der eigentlichen MySQL-Funktion
   -- START Zusatz: Hanashi-Kompatibilität & Fehlerbehandlung
   q.out.__data = q.l[1]
   setmetatable(q.out, { __index = function(a,b) 
       if type(b) == "number" then
           return (a[a.__data[b]] or {"ERROR"})
       end
       return "ERROR"
       --error("Fehler bei Indexierung: Index "..b.." ist nicht vorhanden!")
   end})
   return q.out
end 

 

Appel :

 

local res = mysql_query("requete","user","pass","db","localhost")

 

cellule = res.nomDuChamp[numeroDeLaLigne]

Lien vers le commentaire
  • 0

je n'ai pas tout compris ..

 

au dessus c'est la fonction

jusque la sa marche

 

 local res = mysql_query("requete","user","pass","db","localhost") 

la c'est pour les information de connection

sa marche aussi

 

mais par exemple si je veux incrementé un champs nommé = " kill" et qui correspond a la ligne du nom du joueur qui est contenue dans la table player

comment je fais ?

Lien vers le commentaire
  • 0

Purée je vois que y'en a qui sont complètement à côté de la plaque mdr ^^

 

Pour mettre à jour il suffit de faire ça :

 

local res = mysql_query("UPDATE player.player set kill = kill +1 where name='" ..pc.get_name().. "'","user","pass","db","localhost")

 

 

C'est tellement bien expliqué aussi x)

Lien vers le commentaire
  • 0

cela ne fonctionne pas

 

voila l'erreur que j'ai dans le ssh quand je tue un joueur

 

 ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kill = kill +1 where name='[sa]test'' at line 1

Lien vers le commentaire
  • 0

voila la quette en entiere

les requette sql normalement se termine par un ";" mais la il n'y en a pas , est ce normal

quest pvp begin
   state start begin
when kill with npc.is_pc() begin
	syschat("Félicitations ! Vous gagnez un point pour votre grade.")
	local res = mysql_query("UPDATE player.player set kill = kill +1 where name='" ..pc.get_name().. "'","metin2","epv4minq","player","localhost")



			end
		end
	end

Lien vers le commentaire
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / 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.