Victor8 9 Postado Março 20, 2013 Share Postado Março 20, 2013 (editado) Olá amigos do xtibia. Odeio pedir coisas, eu sempre dou um jeito e faço eu mesmo. Mas database, não sei mesmo. Seguinte, meu ot as vezes, perde a conexão com a data base (mysql). Devido a querys muito grandes. Solução: Um script que tente pegar algum dado da data base e verificalo. Se ele conseguir verificalo ok. Se ele não conseguir.. fecha o ot. Eu bolei uma mais ou menos aki. Mas não deu muito certo, olhem: egua = 1 local Info = db.getResult("SELECT `id` FROM `players` WHERE `id` = " .. egua .. ";") if info == 1 then else doShutdown() end return end Editado Março 20, 2013 por Victor8 Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/ Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 21, 2013 Share Postado Março 21, 2013 (editado) Adiciona em alguma lib: function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."`= "..id..";") local b = a:getDataString(""..column.."") return b end Usando a função: getInfoFromDatabase(players, resets, name, Batata) Ela faz isso: db.getResult("SELECT `resets` FROM `players` WHERE `name` = "Batata";") Ai é só usar assim: if getInfoFromDatabase(players, id, id, 1) == 1 then blablabla else doShutdown() end Acho que vai funcionar. Se não, vê se dá algum erro e posta aqui. Editado Março 21, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1490906 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 24, 2013 Autor Share Postado Março 24, 2013 (editado) Olá luck, vou testar aqui. Obrigado Edit gerou um erro. Editado Março 29, 2013 por Victor8 Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1492488 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Try again: function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."` = "..id..";") local b = a:getDataString(""..column.."") return b end Se não funcionar, me mostra como você tá usando a função. Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495036 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Deu denovo o mesmo erro. To usando assim, para testar, é claro. function onThink(interval, lastExecution) if getInfoFromDatabase(players, id, id, 1) == 1 then doBroadcastMessage("k") else doShutdown() end return true end E adicionei na lib functions. Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495043 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."` = `"..id.."`;") local b = a:getDataString(""..column.."") return b, a:free() end Rapaz, você tá perguntando o seguinte pro sistema: Retornar o ID do player que tiver ID igual a 1. Não faz sentido isso, se o player tiver ID 1, vai retornar 1. Vê se você não tá usando a condição errada. Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495044 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Vei, agora que fui ver. Na data base nao tem player com id 1. Eu coloquei assim agora: function onThink(interval, lastExecution) if getInfoFromDatabase(players, id, id, 3) == 3 then doBroadcastMessage("k") else doShutdown() end return true end Mas mesmo assim deu a condition errada. Nill value :\ Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495047 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) Cara, não sei se sou eu que tô fazendo alguma bobeira, até porque eu sou meio ruim pra mexer com querys, mas ainda tá me incomodando essa verificação. Olha só como tá, do jeito que você fez: SELECT `id` FROM `players` WHERE `id` = `3`; Selecionar o id de quem tiver id igual a 3? Estranho, não? Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495050 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Pois é cara, sabe aquele primeiro script que eu fiz. Tava dando praticamente o mesmo erro. Cara, só se mudar, tipo.. Ver a account id, ou o nome seila Quem sabe esse ID seja da propria data base, e nao um valor. o_o :\ Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495054 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Usa assim: getInfoFromDatabase(players, id, name, "Sorcerer Sample") Ai vai retornar o ID do player de nome "Sorcerer Sample". Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495060 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Deu null Cara, eu mysql sou 0. Mas tipo o problema ta nesse id ai. Ele nao consegue verificar o id. Ah cara, que mentira. Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495062 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) Cara, tenta de novo: function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."` = `"..id.."`;") if a:getID() == -1 then return false end local b = a:getDataString(""..column.."") return b, a:free() end Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495065 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 (editado) Bah cara, da nill value! Editado Março 29, 2013 por Victor8 Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495089 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) Com a ajuda do Slicer eu acho que arrumamos uma solução: getInfoFromDatabase("players", "id", "name", "Sorcerer Sample") Tenta ai. Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495099 Compartilhar em outros sites More sharing options...
0 Victor8 9 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 (editado) OOOOOOOOOOPA FECHOU O OT. Não era pra fechar, perai vou ver. Mas ja é uma grande coisa cara, nossa. Perai ja edito aki. Alterei o script para testar: function onThink(interval, lastExecution) if getInfoFromDatabase("players", "id", "name", "Sorcerer Sample") == 3 then doBroadcastMessage("ok") else doBroadcastMessage("fechar") end return true end Deu esse erro. Editado Março 29, 2013 por Victor8 Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495122 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."` = "..id..";") if a:getID() == -1 then return false end local b = a:getDataString(""..column.."") return b, a:free() end Vê ai. Link para o comentário https://xtibia.com/forum/topic/210128-verificar-database/#findComment-1495149 Compartilhar em outros sites More sharing options...
Pergunta
Victor8 9
Olá amigos do xtibia.
Odeio pedir coisas, eu sempre dou um jeito e faço eu mesmo. Mas database, não sei mesmo.
Seguinte, meu ot as vezes, perde a conexão com a data base (mysql).
Devido a querys muito grandes.
Solução:
Um script que tente pegar algum dado da data base e verificalo.
Se ele conseguir verificalo ok.
Se ele não conseguir.. fecha o ot.
Eu bolei uma mais ou menos aki. Mas não deu muito certo, olhem:
egua = 1
local Info = db.getResult("SELECT `id` FROM `players` WHERE `id` = " .. egua .. ";")
if info == 1 then
else
doShutdown()
end
return
end
Editado por Victor8Link para o comentário
https://xtibia.com/forum/topic/210128-verificar-database/Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados