Jump to content

Recommended Posts

Witam, chciałem prosić was o pomoc, a mianowicie mam coś takiego w Bazie danych

72653646544523431287.png

Ale chce zrobić żeby każde ID Kategori broni nie było osobno tylko dać je do 1 tabeli: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... i później rozdzielić to za pomocą skryptu.

Jak to zrobić? Słyszałem że używa się do tego table.concat, ale wydaje mi się że to dodaje przecinki między wyrazy, a mi nie o to chodzi

Pomocy :P

Link to comment

jesli twoja tabela ma format: {0,0,0,0,0,...,0}

to jaknajbardziej skożystaj z table.concat:

  
tab = {0,0,0,0,0,...,0} 
local text = table.concat(tab,",") 
  

potem zapisujesz tekst do bazy danych,

proces odwrotny wymaga funkcji split:

  
text = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" 
tab = split(text,string.byte(",")) 
  

Jeśli natomiast tabela jest w stylu {["bronID0"]=0,["bronID1"]=0,["bronID2"]=0,...,["bronAmo7"]=0}

to sprawy nieco się komplikują:

  
tab = {["bronID0"]=0,["bronID1"]=0,["bronID2"]=0,...,["bronAmo7"]=0} 
tab2 = {} 
i=0 
for id,v in pairs(tab) do 
    i=i+1 
   tab2[i]=id.."_"..v 
end 
text = table.concat(tab2,",") 
--odwrotnie 
tab2 = split(text,string.byte(",")) 
for i=1,#tab2 do 
    local t = split(tab2[i],string.byte("_")) 
    tab[t[1]]=t[2] 
end 
  

kożystając z mojego kodu nalezy brać poprawki na literówki ;)

Link to comment

Upewnię się że dobrze zrozumieliście :P

w MYSQL mam tak zapisane Kategorie Broni:

91516944526537339500.png

A chce mieć zapisane tak

93962104567521549623.png

I później jak to odczytać żeby:

0 trafiło do kategorii: 0, 8 do kategorii: 1, 24 do kategorii: 2 itd.

Bo jak wiemy mamy 12 Kategori broni. :)

Link to comment

ale jak masz te dane zapisane w skrypcie? w tabeli czy każdy ID i Amo w osobnej zmiennej?

Mój poprzedni post raczej pokrywa wszystko o tabelach, ale jak masz zapisane w osobnych zmiennych to:

  
bronID0 = 0 
bronID1 = 0 
bronID2 = 0 
--itp 
bronAmo5 =0 
bronAmo6 =0 
bronAmo7 =0 
text1 = bronID0..","..bronID1..","..bronID2 -- kontynuuj dla wszystkich ID 
text2 = bronAmo5..","..bronAmo6..",".bronAmo7 -- kontynuuj dla wszystkich Amo 
-- odczytywanie: 
tab1 = split(text1,string.byte(",") 
bronID0 =tab1[1] 
bronID1 = tab1[2] 
bronID2 = tab1[3] 
tab2 = split(text2,string.byte(",") 
bronAmo5 =tab2[6] 
bronAmo6 =tab2[7] 
bronAmo7 =tab2[8] -- przy założeniu że prawidłowo zapisałeś od Amo0 do Amo7 
  

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...