[Ajuda] Sqlite, mais de um valor na coluna ?
#1

Bom dia, pessoal
minha duvida й a seguinte, queria saber se й possнvel salvar e carregar mais de um valor em uma mesma coluna no sqlite ?
por exemplo:


nas outra opзхes pelo fato dela formatar a query e facil adicionar mais de um valor, mas se isso for possivel
como eu poderia fazer para ela carregar e transformar em valor numйrico, como neste caso ?

No momento ela esta assim:
Код:
db_get_field_assoc(Resultado,"Fome",Campo,50);
Contas[playerid][Fome] = strval(Campo);
A outra seria:
Код:
Contas[playerid][FomeMaximo]
Minha ideia seria:
Contas[playerid][Fome] -> Ler o " 0 " da coluna e a
Contas[playerid][FomeMaximo] -> Ler o " 100 " da mesma coluna como esta na imagem

Se for possнvel fazer isso, como eu poderia fazer o cуdigo de carregamento desta coluna (esse q eu postei logo acima,
db_get_field ... ) para pegar o valor 0 e setar no Contas[playerid][Fome], e o valor 100 setar no Contas[playerid][FomeMaximo] ? jб tentei alguns modos, mas deu erros.

Se alguйm nгo entendeu eu tento explicar melhor kkkkk
Reply
#2

So vocк salvar apenas a fome atual, dai no gamemode vocк programa a fome mбxima dele.
Provavelmente todos os players vai suportar a mesma fome nй?
Se nгo crie outra tabela com fome atual dele e a fome mбxima.
Acho que foi isso que eu entendi vlw.
Reply
#3

Sim, no momento jб esta assim, mas estou fazendo um sistema de melhoria, onde o player que, fizer exercнcios fнsicos na academia e tal vai aumentar o ponto da fome mбxima, e pra evitar ficar fazendo um monte de coluna assim ficaria mais organizado, por isso q quero saber se й possнvel fazer isso no sqlite
Reply
#4

Acho que da para fazer com apenas uma coluna mais dai vocк teria que criar uma funзгo para converter string para inteiro, acho melhor vocк criar uma coluna, nгo vai ficar bagunзado.
Reply
#5

Da parar criar tambйm outra coluna com o nivel de melhoria, ai dentro do gamemode vocк faz o limite da fome.
Reply
#6

Entao a melhoria vai ser para varias coisas, nao so para a fome, e tambem eu queria saber se fosse possivel, por nao iria usar apenas pra isso, tenho varias ideias, mas precisava salvar na mesma coluna mais de um valor, pq se eu for fazer uma coluna pra cada item vai passar de 100 colunas
Reply
#7

Cria uma tabela apenas para salvar os itens de saude
E outra 100 colunas para criar esse sistema? acho melhor vocк comeзar pensar mais.
Por mais que esse sistema seja complexo, creio que nгo usaria esse tanto. sei la nй.
Reply
#8

Nao й sу desse sistema, й do servidor inteiro, tem muito coisa pra salvar. E vai ter linhas praticamente pra salvar valores bбsicos, como 1 ou 2.

Mas enfim consegui fazer por Strmid, o problema ta em fazer com que ele leia caso o numero de centenas diminui pra dezenas e diminui para nъmeros inteiros e vice versa:

Код HTML:
Resultado = db_query(SQLiteBase,"SELECT * FROM TESTE");
if(db_num_rows(Resultado))
{
	new String1[8], Campo[9];
        db_get_field_assoc(Resultado,"FOME",Campo,9);
	strmid(String1, Campo, 0, 3);
        Contas[playeid][FOME] = strval(String1);
        strmid(String1, Campo, 5, 9);
	Contas[playeid][FOMEMAXIMA] = strval(String1);
}
o ъnico problema que vai ficar complicadinho para fazer esse cуdigo toda vez que eu precisar fazer algo do tipo,
mas pelo menos no banco de dados vai ficar mais organizado e vai diminuir a quantidade de colunas.
Se alguйm tiver uma dica para melhorar o cуdigo, ou atй mesmo a soluзгo pra tudo isso, e quiser ajudar ja agradeзo
e agradeзo tambйm pela ajuda RedKill
Reply
#9

Eu tava pensando em vocк salvar os dados assim:

0,0,0,0,0,0,0 - em texto.

dai vocк usa sscanf!
Eu nгo lembro direito como faz, mais vocк pode pesquisar
acho que й p<,>iiiii etc...
da uma pesquisada aew
Reply
#10

Sim, as licenзas eu posso salvar assim, pq os valores serao salvos apenas 0 ou 1 entao nao vai ocupar casa decimal e nem centenas ... ja sao 5 colunas em uma. o problema no sistema que eu fiz acima, й quando ele reduz a casa centenas para dezenas, o primeiro valor ira ler normal mas ja o segundo vai setar para 0 pq ele nao vai ler o numero, a casa 5 ja vai estar em outro caractere.
mas vou dar uma estudada no scanff jaja posto resultados
Reply
#11

Pega tudo como texto e converte para float usando floatstr
Reply
#12

Podes usar sscanf ou essa funcao:

PHP код:
db_get_field_assoc(Resultado,"Fome"Campo50);
new 
arrayp[2][8];
split(Campoarrayp'/');
Contas[playerid][Fome] = strval(arrayp[0]);
Contas[playerid][FomeMaximo]  = strval(arrayp[1]);


stock split(const strsrc[], strdest[][], delimiter// By Y_Less
{
    new 
iliaNumlen;
    while(
<= strlen(strsrc))
    {
        if(
strsrc[i]==delimiter || i==strlen(strsrc))
        {
            
len strmid(strdest[aNum], strsrclii128);
            
strdest[aNum][len] = 0;
            
li i+1;
            
aNum++;
        }
        
i++;
    }
    return 
1;

Reply
#13

Aн PT, obrigado cara, o seu deu certinho, indepente que seja dezenas ou centenas ou numeros inteiros ele salva normal, muito obrigado!
E obrigado tambйm RedKill pela ajuda

+Rep's
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)