Ir para conteúdo
  • Cadastre-se

(Resolvido)Erro Deletar Guild Inativa


Ir para solução Resolvido por L3K0T,

Posts Recomendados

Olá boa noite,

 

Gostaria de pedir uma ajuda a vocês, estou com um script de remover guilds inativas porem ele está gerando um erro na distro

 

Erro

mysql_real_query(): SELECT COUNT(guild_id) FROM `players` WHERE `guild_id` = '48'; - MYSQL ERROR: Unknown column 'guild_id' in 'field list' (1054)

 

Script

Spoiler

function onStartup()
   local result_guilds = db.getResult("SELECT `id`, `creationdata` FROM `guilds` ORDER by `creationdata` ASC;")
   local days = 30*3600*24
   local nowtime = os.date('*t')
   if (result_guilds and result_guilds:getID() ~= -1) then
     while(true) do
       local id = result:getDataInt("id")
       local date = result_guilds:getDataInt("creationdata")
       local time= os.time(nowtime) - date
       local duedate = time - days
       if duedate >= 0 then
           local result_countplayersguild = db.getResult("SELECT COUNT(guild_id) FROM `players` WHERE `guild_id` = '".. id .."';")
           if (result_countplayersguild and result_countplayersguild:getID() ~= -1) then
               local manyplayers = result_countplayersguild:getDataInt("COUNT(guild_id)")
               if manyplayers < 10 then
                   db.executeQuery("DELETE FROM `guild_invite` WHERE `guild_id` = '".. id .."';")
                   db.executeQuery("DELETE FROM `guild_kills` WHERE `guild_id` = '".. id .."';")
                   db.executeQuery("DELETE FROM `guild_ranks` WHERE `guild_id` = '".. id .."';")
                   db.executeQuery("DELETE FROM `guild_storage` WHERE `guild_id` = '".. id .."';")
                   db.executeQuery("DELETE FROM `guild_wars` WHERE `guild_id` = '".. id .."';")
               end
           end
       end
       if not(result_guilds:next()) then
           break
       end
  end
	end
   end

 

Utilizo OTX Server 2 - 8.6

Muito obrigado desde já!

Link para o post
Compartilhar em outros sites
  • Sub-Admin
  • Solução
function onStartup()
    local result_guilds = db.getResult("SELECT `id`, `creationdata` FROM `guilds` ORDER by `creationdata` ASC;")
    local days = 30 * 3600 * 24
    local nowtime = os.time()

    if (result_guilds and result_guilds:getID() ~= -1) then
        while (true) do
            local id = result_guilds:getDataInt("id")
            local date = result_guilds:getDataInt("creationdata")
            local time = nowtime - date
            local duedate = time - days

            if duedate >= 0 then
                local columnExists = db.isColumn("players", "guild_id")
                if columnExists then
                    local result_countplayersguild = db.getResult("SELECT COUNT(*) AS player_count FROM `players` WHERE `guild_id` = " .. id .. ";")
                    if (result_countplayersguild) then
                        local manyplayers = result_countplayersguild:getDataInt("player_count")
                        result_countplayersguild:free()

                        if manyplayers < 10 then
                            db.executeQuery("DELETE FROM `guild_invite` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_kills` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_storage` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_wars` WHERE `guild_id` = " .. id .. ";")
                        end
                    end
                end
            end

            if not (result_guilds:next()) then
                break
            end
        end
        result_guilds:free()
    end
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

Desculpe reviver o post porem agora esta dando este erro

 

[16:02:39.731] [Error - GlobalEvent Interface]
[16:02:39.733] data/globalevents/scripts/init.lua:onStartup
[16:02:39.733] Description:
[16:02:39.734] data/globalevents/scripts/init.lua:127: attempt to call field 'isColumn' (a nil value)
[16:02:39.735] stack traceback:
[16:02:39.735]  data/globalevents/scripts/init.lua:127: in function <data/globalevents/scripts/init.lua:35>

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • Sub-Admin
function onStartup()
    local result_guilds = db.getResult("SELECT `id`, `creationdata` FROM `guilds` ORDER BY `creationdata` ASC;")
    local days = 30 * 3600 * 24
    local nowtime = os.time()

    if (result_guilds and result_guilds:getID() ~= -1) then
        while (true) do
            local id = result_guilds:getDataInt("id")
            local date = result_guilds:getDataInt("creationdata")
            local time = nowtime - date
            local duedate = time - days

            if duedate >= 0 then
                local query = db.getResult("SHOW COLUMNS FROM `players` LIKE 'guild_id';")
                if (query and query:getID() ~= -1) then
                    -- A coluna 'guild_id' existe na tabela 'players'
                    query:free()
                    
                    local result_countplayersguild = db.getResult("SELECT COUNT(*) AS player_count FROM `players` WHERE `guild_id` = " .. id .. ";")
                    if (result_countplayersguild) then
                        local manyplayers = result_countplayersguild:getDataInt("player_count")
                        result_countplayersguild:free()

                        if manyplayers < 10 then
                            db.executeQuery("DELETE FROM `guild_invite` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_kills` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_ranks` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_storage` WHERE `guild_id` = " .. id .. ";")
                            db.executeQuery("DELETE FROM `guild_wars` WHERE `guild_id` = " .. id .. ";")
                        end
                    end
                end
            end

            if not (result_guilds:next()) then
                break
            end
        end
        result_guilds:free()
    end
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo