[mysql]Abfrage?

12/05/2012 09:25 ©by Noa#1
Wie kann ich in einer quest eine Mysql abfrage machen?
zb Das Geld von mein gerade gespielten Spieler??
12/05/2012 09:26 .Remix#2
PHP Code:
"..pc.get_money().." 
12/05/2012 09:34 ©by Noa#3
so oder wie?
PHP Code:
local geldstatusmysql_query("SELECT * FROM player.player WHERE name='"..pc.get_name().."' WHERE gold='"..pc.get_gold().."'"
12/05/2012 09:35 .Remix#4
PHP Code:
say("Du hast "..pc.get_money().." dabei."
Dann wird angezeigt, wieviel Yang der Spieler dabei hat. (;
12/05/2012 09:39 ©by Noa#5
es gibt auch noch verschiedene Schreibweisen wie, pc.getgold,pc.getmoney, pc.get_money, pc.get_gold, pc.gold.
Ich wollte wissen wie man mit Mysql eine abfrage erstellt, als beispiel habe ich das mit dem Yang gemacht.
Das was du schreibst ist eine metin2 funktion.
12/05/2012 18:21 Sp0ngeb0b ist cool#6
local q = mysql_query('select gold from player.player WHERE id = "'..pc.get_player_id()..'"')

beispielsweise.. kannst auch WHERE name = pc.get_name() machen oder je nachdem die account id ;)

ausgabe der query ist abhängig von deiner sql func; bei mir wäre es
q.gold[1]
12/05/2012 18:52 ©by Noa#7
ich würde gerne mehr wissen, was meinst du mit "sql func;" & wo kann ich es ablesen?
wie werden die querys geschrieben? & auf was muss ich achten?
12/06/2012 15:26 Sp0ngeb0b ist cool#8
sql func = mysql_query diese ist in deiner questlib definiert..aus ihr kannst du folglich ablesen, wie die ausgabe der query ist ;)

geschrieben werden sie,indem du den funktionsnamen angibst:
mysql_query('SELECT X from Y WHERE W = Z')
mysql_query('UPDATE Y set X = WERT WHERE W = Z')
mysql_query('INSERT INTO Y (SPALTE1,SPALTE2 usw.) VALUES (WERT1 zu SPALTE1,WERT2 zu SPALTE2)')

X = Spalte
Y = Datenbank Beispiel: player.player
W= andere Spalte (dient als Suchkriterie)
Z = jeweiliger Wert

SELECT gold from player.player --> gibt eine tabelle aus mit allen werten die ausgelesen wurden; ausgelesen wurden alle, die die suchkriterien erfüllt haben
Welche spalten haben die suchkriterien erfüllt? alle! da keine suchkriterie gegeben ist ..da du aber im beispiel den gold wert des ausführenden spielers suchst musst du eine suchkriterie angeben die 100% nur 1x existiert! was existiert von jedem spieler nur 1x in der player.player? die player id deshalb:
select gold from player.player where id = playerid (richtige schreibweise siehe meinen letzten post)

Worauf musst ich achten?
auf die klammern sowie die richtige stringsetzung beispiel:
('select gold from player.player where id = "pc.get_player_id()" ') --> falsch, da du nicht nach "pc.get_player_id()" suchst sondern nach dem ausgegebenen wert also:
('select gold from player.player where id = " ' .. pc.get_player_id() .. ' " ')

lg sponge
12/06/2012 18:07 ©by Noa#9
danke bist ein Schatz, aber ergibt die namensuche auch nicht die selbe trefferquote wie die ID, weil sie ist ja auch nur einmalig.
12/13/2012 17:18 ©by Noa#10
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
sql func = mysql_query diese ist in deiner questlib definiert..aus ihr kannst du folglich ablesen, wie die ausgabe der query ist ;)

geschrieben werden sie,indem du den funktionsnamen angibst:
mysql_query('SELECT X from Y WHERE W = Z')
mysql_query('UPDATE Y set X = WERT WHERE W = Z')
mysql_query('INSERT INTO Y (SPALTE1,SPALTE2 usw.) VALUES (WERT1 zu SPALTE1,WERT2 zu SPALTE2)')

X = Spalte
Y = Datenbank Beispiel: player.player
W= andere Spalte (dient als Suchkriterie)
Z = jeweiliger Wert

SELECT gold from player.player --> gibt eine tabelle aus mit allen werten die ausgelesen wurden; ausgelesen wurden alle, die die suchkriterien erfüllt haben
Welche spalten haben die suchkriterien erfüllt? alle! da keine suchkriterie gegeben ist ..da du aber im beispiel den gold wert des ausführenden spielers suchst musst du eine suchkriterie angeben die 100% nur 1x existiert! was existiert von jedem spieler nur 1x in der player.player? die player id deshalb:
select gold from player.player where id = playerid (richtige schreibweise siehe meinen letzten post)

Worauf musst ich achten?
auf die klammern sowie die richtige stringsetzung beispiel:
('select gold from player.player where id = "pc.get_player_id()" ') --> falsch, da du nicht nach "pc.get_player_id()" suchst sondern nach dem ausgegebenen wert also:
('select gold from player.player where id = " ' .. pc.get_player_id() .. ' " ')

lg sponge
PHP Code:
QUEST test
STATE 
start
WHEN  
login
WHEN  
button or
WHEN  info
say 
"testquest" )
say "Dein Yangstatus" )
local name mysql_query "select gold from player.player where id = " " .. pc . get_player_id ( ) .. " " " )
say name )

syntax error : [string "start"]:3: `)' expected near `" .. pc . get_player_id ( ) .. "'
test.quest:11:Error occured on compile test.quest 
PHP Code:
quest test begin
    state start begin
        when login begin
            send_letter
("hallo"..pc.get_name())
        
end
        when button 
or info begin
            say
("testquest")
            
say("Dein Yangstatus")
            
local name mysql_query('select gold from player.player where id = " ' .. pc.get_player_id() .. ' " ')
            
say(name)
        
end 
    end
end