• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

MySQL Pobieranie wartości.

Status
Not open for further replies.

Hitsugaya

New Member
Joined
Mar 28, 2008
Messages
90
Reaction score
0
Location
Poland, Łódź, RTK
Witam. Jakim zapytaniem pobrać dane z mysql ? Tak żeby po wpisaniu tego zapytania podało mi konkretną wartość (liczbę) ?

Pozdrawiam
 
SELECT `cos` FROM `cos` WHERE `cos` = "cos`LIMIT 1

Pobierze wartość cos z tabeli cos gdzie cos równa się coś.
 
Code:
local skill = db.getResult("SELECT `skillsadd` FROM `players` WHERE `name` = `"..getCreatureName(cid).."` LIMIT 1")
i wywala błąd :
Code:
[26/04/2011 15:15:12] mysql_real_query(): SELECT `skillsadd` FROM `players` WHERE `name` = `Sniper` LIMIT 1 - MYSQL ERROR: Unknown column 'Sniper' in 'where clause' (1054)

[26/04/2011 15:15:12] [Error - TalkAction Interface] 
[26/04/2011 15:15:12] data/talkactions/scripts/skillcheck.lua:onSay
[26/04/2011 15:15:12] Description: 
[26/04/2011 15:15:12] data/talkactions/scripts/skillcheck.lua:4: attempt to concatenate local 'skill' (a table value)
[26/04/2011 15:15:12] stack traceback:
[26/04/2011 15:15:12] 	data/talkactions/scripts/skillcheck.lua:4: in function <data/talkactions/scripts/skillcheck.lua:1>

PS. Jest funkcja pobierająca ID gracza z mysql ?
 
local skill = db.getResult("SELECT `skillsadd` FROM `players` WHERE `name` = '"..getCreatureName(cid).."' LIMIT 1")
 
Code:
[26/04/2011 15:21:47] [Error - TalkAction Interface] 
[26/04/2011 15:21:47] data/talkactions/scripts/skillcheck.lua:onSay
[26/04/2011 15:21:47] Description: 
[26/04/2011 15:21:47] data/talkactions/scripts/skillcheck.lua:4: attempt to concatenate local 'skill' (a table value)
[26/04/2011 15:21:47] stack traceback:
[26/04/2011 15:21:47] 	data/talkactions/scripts/skillcheck.lua:4: in function <data/talkactions/scripts/skillcheck.lua:1>

To samo z tym, że brak erroru mysql.

PS. Jest to liczba (w moim przypadku 1) a on mówi, że to jest wartość z tabeli :(
 
Lua:
db.getResult("SELECT `skillsadd` FROM `players` WHERE `name` = `"..getCreatureName(cid).."` LIMIT 1")[1]

nie pamietam czy numerowane tablice sa od 0 czy od 1 w lua
musisz to sprawdzic.
 
Od 1, ale dlaczego on podaje 1 liczbę jako wartość z tablicy ? Zrobiłem jak podałeś i wyskoczyło tylko :
Code:
[26/04/2011 15:45:40] [Error - TalkAction Interface] 
[26/04/2011 15:45:40] data/talkactions/scripts/skillcheck.lua:onSay
[26/04/2011 15:45:40] Description: 
[26/04/2011 15:45:40] data/talkactions/scripts/skillcheck.lua:4: attempt to concatenate local 'skill' (a nil value)
[26/04/2011 15:45:40] stack traceback:
[26/04/2011 15:45:40] 	data/talkactions/scripts/skillcheck.lua:4: in function <data/talkactions/scripts/skillcheck.lua:1>

Wartość w bazie wynosi 1 ;/
 
Od 1, ale dlaczego on podaje 1 liczbę jako wartość z tablicy ? Zrobiłem jak podałeś i wyskoczyło tylko :
Code:
[26/04/2011 15:45:40] [Error - TalkAction Interface] 
[26/04/2011 15:45:40] data/talkactions/scripts/skillcheck.lua:onSay
[26/04/2011 15:45:40] Description: 
[26/04/2011 15:45:40] data/talkactions/scripts/skillcheck.lua:4: attempt to concatenate local 'skill' (a nil value)
[26/04/2011 15:45:40] stack traceback:
[26/04/2011 15:45:40] 	data/talkactions/scripts/skillcheck.lua:4: in function <data/talkactions/scripts/skillcheck.lua:1>

Wartość w bazie wynosi 1 ;/

masz w tabeli players kolumne skillsadd ?
 
beztytuuedic.png
 
local result = db.getResult("SELECT `skillsadd` FROM `players` WHERE `name` = \"" .. getCreatureName(cid) .. "\" LIMIT 1;")
 
Niestety, Twój kod nie działa, ale poradziłem sobie z jednym problemem. wyświetla mi, że wartość wynosi 0 a w db jest 1 ;(

Jest możliwe, że ta kolumna jest zbugowana ??

PS. Tak jak pisał koob. Nawet jak wpiszę 5 to i tak pokazuję, że jest 0 ;/
 
Code:
function onSay(cid, words, param, channel)
	if (param == '') then
		local skill = db.getResult("SELECT `addedskill` FROM `players` WHERE `name` = '"..getCreatureName(cid).."' LIMIT 1")
		doCreatureSay(cid, "Posiadasz " ..#skill.. " punktow.", TALKTYPE_ORANGE_1)
		end
return true
end

Kiedy jest #skill pokazuję 0, a kiedy nie ma to tam masz błędy wyżej.
 
Code:
function onSay(cid, words, param, channel)
	if (param == '') then
		local result = db.getResult("SELECT `addedskill` FROM `players` WHERE `name` = '"..getCreatureName(cid).."' LIMIT 1")
        local skill = result:getID();
			doCreatureSay(cid, "Posiadasz " ..skill.. " punktow.", TALKTYPE_ORANGE_1)
		end
return true
end
 
Dalej pokazuje 0 z tym, że bez błędów w konsoli :<

PS. A czy typ danej kolumny ma tutaj znaczenie ? INT(11) czy INT(10) unsigned ?
 
Code:
local skill = db.getResult("SELECT `[B]skillsadd[/B]` FROM `players` WHERE `name` = `"..getCreatureName(cid).."` LIMIT 1")
i wywala błąd :
Code:
[26/04/2011 15:15:12] mysql_real_query(): SELECT `skillsadd` FROM `players` WHERE `name` = `Sniper` LIMIT 1 - MYSQL ERROR: Unknown column 'Sniper' in 'where clause' (1054)

[26/04/2011 15:15:12] [Error - TalkAction Interface] 
[26/04/2011 15:15:12] data/talkactions/scripts/skillcheck.lua:onSay
[26/04/2011 15:15:12] Description: 
[26/04/2011 15:15:12] data/talkactions/scripts/skillcheck.lua:4: attempt to concatenate local 'skill' (a table value)
[26/04/2011 15:15:12] stack traceback:
[26/04/2011 15:15:12] 	data/talkactions/scripts/skillcheck.lua:4: in function <data/talkactions/scripts/skillcheck.lua:1>

PS. Jest funkcja pobierająca ID gracza z mysql ?


Code:
function onSay(cid, words, param, channel)
	if (param == '') then
		local skill = db.getResult("SELECT `[B]addedskill[/B]` FROM `players` WHERE `name` = '"..getCreatureName(cid).."' LIMIT 1")
		doCreatureSay(cid, "Posiadasz " ..#skill.. " punktow.", TALKTYPE_ORANGE_1)
		end
return true
end

Kiedy jest #skill pokazuję 0, a kiedy nie ma to tam masz błędy wyżej.
zmieniles nazwe?
 
Oczywiście. Nawet na 3 (3 różne kolumny) i z każdą to samo ;/ Próbowałem nawet odczytać takie dane jak health, mana i za każdym razem 0. Mam TFS 0.3.6 pl1
 
Lua:
function onSay(cid, words, param, channel)
	if (param == '') then
		local result = db.getResult("SELECT `addedskill` FROM `players` WHERE `name` = '"..getCreatureName(cid).."' LIMIT 1")
        local skill = result:getDataInt("addedskill");
			doCreatureSay(cid, "Posiadasz " ..skill.. " punktow.", TALKTYPE_ORANGE_1)
		end
return true
end
 
Status
Not open for further replies.
Back
Top