Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-02-18, 10:45


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
Siema, nie mam poj?cia jak pobra? wszystkie dane z bazy i je np. wy?wietli? w gridlist.


Podejrzewam, ?e trzeba u?y? mysql_fetch_assoc :D
Prosz? o pomoc

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 12:30


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7


Więcej informacji znajdziesz w Wikipedii MTA:

Modules/MTA-MySQL/mysql_fetch_assoc


Spr?buj pog??wkowa? nad wy?wietleniem p?ki co danych z bazy (np. w formie wy?wietlenia ich funkcj? outputChatBox na chat). Jak uda Ci si? to to przejdziemy potem do utworzenia gridlisty. P?ki co jednak postaraj si? nad tym popracowa?. Daj zna? jak znajdziesz jakie? b??dy i ich nie b?dziesz potrafi? rozwi?za? lub ewentualnie jak wszystko b?dzie ok.

P.S. Skorzystaj z przyk?adu, kt?ry znajduje si? na stronie, kt?r? poda?em wy?ej.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 13:37


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
Zrobi?em jak na wiki :

function zal()
local result mysql_query(handler"SELECT * FROM rpg_gracze") -- Execute the query
if (resultthen
  while true do
    local row mysql_fetch_assoc(result)
    if (not rowthen break end
 
    outputDebugString(row["nick"])
  end
  mysql_free_result(result) -- Free the result
end
addCommandHandler("test"zal)


nie dziala, nie pokazuje ?adnych b??d?w.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 13:56


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Masz w tabeli "rpg_gracze" kolumn? o nazwie "nick" ?

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 14:05


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

function getResults ()
    local result mysql_query(handler"SELECT * FROM rpg_gracze") -- tworzy zapytanie
    if (resultthen -- sprawdzaczy zadanie zosta?o wykonane
        local row mysql_fetch_assoc(result) -- pobiera rekordy
        if (rowthen -- sprawdza czy rekordy zosta?y pobrane
            for k,v in ipairs(row) do -- zap?tla rekordy
                local nick v["nick"] -- pobiera wszystkie rekordy z kolumny "nick"
                outputChatBox(nick)  -- wy?wietla je na czacie
            end
        end
    end
end
addCommandHandler("get"getResults)

Funkcja mysql_fetch_assoc zwraca tablice z rekordami. Je?li chcesz zdoby? wszystkie musisz j? zap?tli?.
Jak nie dzia?a, sprawd? czy skrypt poprawnie ??czy si? z baz? i/lub czy w danej tabeli "rpg_gracze" jest stworzona kolumna "nick".

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 14:43


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
Nie dzia?a i nie ma b??d?w.



edit:

ok, poradzi?em sobie.
function haha()
local result mysql_query(handler"SELECT nick FROM rpg_gracze WHERE frakcja = 3") -- Execute the query
if (resultthen
  while true do
    local row mysql_fetch_row(result)
    if (not rowthen break end
 
    outputDebugString(row[1])
  end
  mysql_free_result(result) -- Free the result
end
end
addCommandHandler("sfa"haha)


tylko teraz pytanie jak to przerobi?, ?eby triggerowa? na strone clienta i wy?wietli? w gridli?cie??

edit2:

GUIEditor.gridlist[3] = guiCreateGridList(4338250446falseGUIEditor.tab[2])
local adcol2 guiGridListAddColumn(GUIEditor.gridlist[3], "Pracownicy"0.9)
-- dodaj funckcje do ggridlisty
local mg guiGridListAddRow(GUIEditor.gridlist[3])
local trigger triggerServerEvent("haha"getRootElement(), getLocalPlayer())
guiGridListSetItemText(GUIEditor.gridlist[3], mgadcol2triggerServerEvent("haha"getRootElement(), getLocalPlayer()), falsefalse)



a trigger robi? tak:

function haha()
local result mysql_query(handler"SELECT nick FROM rpg_gracze WHERE frakcja = 3") -- Execute the query
if (resultthen
  while true do
    local row mysql_fetch_row(result)
    if (not rowthen break end
    local gracze row[1]
 
    return gracze
  end
  mysql_free_result(result) -- Free the result
end
end
addCommandHandler("sfa"haha)
addEvent("haha"true)
addEventHandler("haha"getRootElement(), haha)






guiGridListSetItemText 4 argument niby nie pasuje

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 16:05


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Server
addEvent("pobierzListe"true)
function pobierzListe ()
    local result mysql_query(handler"SELECT * FROM rpg_gracze WHERE frakcja='3'")
    if (resultthen
        local num mysql_num_rows(result)
        if (num 0then
            for i=0,num do
                local data mysql_fetch_assoc(result)
                if (datathen
                    local nick data["nick"]
                    triggerClientEvent(source"uzupelnijListe"rootnick)
                end
            end
        end
    end
end
addEventHandler("pobierzListe"rootpobierzListe)


Client
GUIEditor.gridlist[3] = guiCreateGridList(4338250446falseGUIEditor.tab[2])
local adcol2 guiGridListAddColumn(GUIEditor.gridlist[3], "Pracownicy"0.9)
triggerServerEvent("pobierzListe"localPlayer)

addEvent("uzupelnijListe"true)
function uzupelnijListe(nick)
    local row guiGridListAddRow(GUIEditor.gridlist[3])
    guiGridListSetItemText(GUIEditor.gridlist[3], rowadcol2nickfalsefalse)
end
addEventHandler("uzupelnijListe"rootuzupelnijListe)

Dzia?a, testowa?em.

Polecam przeczyta? poradnik Pioruna na temat triggerowania.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-18, 18:11


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
Ok dzi?ki. Jak co? to b?d? jeszcze w tym temacie pisa?.

[ Dodano: 2014-02-19, 17:59 ]
Mam kolejny problem, nie wiem jak pobra? ilo?? danych w tabeli.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-02-20, 05:18


Wielebny







Wiek: 41
Na forum: 5499 dni
Posty: 257
Nick w MP: Wielebny

Piwa: 1690

Respekt: 180
Respekt: 180Respekt: 180

Nie u?ywajcie modu?u mta_mysql. Jest stary, niewygodny, nie przekazuje zwracanych danych w odpowiednich typach (wszystko jest stringiem), ztcp nienajlepiej sobie radzi z NULLami, eskajpowanie danych w nim jest niewygodne i znacznie wolniejsze (jeden dodatkowy request na ka?d? zmienn?).

Funkcje db... wprowadzone ju? jaki? czas temu do MTA nie maj? ww. wad.

Poni?ej kod Jacoba przerobiony na te funkcje z wykorzystaniem ma?ego helpera z zasobu https://github.com/lpiob/MTA-XyzzyRP/tree/master/resources/%5BXyzzyRP%5D/DB2


addEvent("pobierzListe"true)
function pobierzListe (frakcja)
    if not frakcja then frakcja=3 end
    local data exports.DB2:pobierzWyniki("SELECT * FROM rpg_gracze WHERE frakcja=?"frakcja)

    if not data then
        outputChatBox("Nie odnaleziono danych dla frakcji " .. frakcja)
        return
    end

    triggerClientEvent(source"uzupelnijListe"rootdata.nick)
end
addEventHandler("pobierzListe"rootpobierzListe)


Postaw piwo autorowi tego posta
 

 
Tagi: pobieranie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku