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: 5124 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: 33
Na forum: 6853 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: 5124 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 (result) then
  while true do
    local row = mysql_fetch_assoc(result)
    if (not row) then 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: 33
Na forum: 6853 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: 5643 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 (result) then -- sprawdza, czy zadanie zosta?o wykonane
        local row = mysql_fetch_assoc(result) -- pobiera rekordy
        if (row) then -- 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: 5124 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 (result) then
  while true do
    local row = mysql_fetch_row(result)
    if (not row) then 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(43, 38, 250, 446, false, GUIEditor.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], mg, adcol2, triggerServerEvent("haha", getRootElement(), getLocalPlayer()), false, false)



a trigger robi? tak:

function haha()
local result = mysql_query(handler, "SELECT nick FROM rpg_gracze WHERE frakcja = 3") -- Execute the query
if (result) then
  while true do
    local row = mysql_fetch_row(result)
    if (not row) then 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: 5643 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 (result) then
        local num = mysql_num_rows(result)
        if (num > 0) then
            for i=0,num do
                local data = mysql_fetch_assoc(result)
                if (data) then
                    local nick = data["nick"]
                    triggerClientEvent(source, "uzupelnijListe", root, nick)
                end
            end
        end
    end
end
addEventHandler("pobierzListe", root, pobierzListe)


Client
GUIEditor.gridlist[3] = guiCreateGridList(43, 38, 250, 446, false, GUIEditor.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], row, adcol2, nick, false, false)
end
addEventHandler("uzupelnijListe", root, uzupelnijListe)

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: 5124 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: 5639 dni
Posty: 257
Nick w MP: Wielebny

Piwa: 1693

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", root, data.nick)
end
addEventHandler("pobierzListe", root, pobierzListe)


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