Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:ICCup entity count: различия между версиями

Материал из wiki.iccup.org
Нет описания правки
Метка: отменено
Нет описания правки
Метка: ручная отмена
Строка 21: Строка 21:
         queryFields,    -- Поля для выборки
         queryFields,    -- Поля для выборки
         {
         {
            where = conditions,  -- Условия запроса
             format = "table"    -- Формат должен быть "table", чтобы возвращать таблицу
             format = "table"    -- Формат должен быть "table", чтобы возвращать таблицу
         }
         }
Строка 30: Строка 31:
     if type(res) == 'table' then
     if type(res) == 'table' then
         -- Если таблица возвращена, пробуем вывести данные
         -- Если таблица возвращена, пробуем вывести данные
         return #res
         if #res > 0 then
            -- Если результат непустой, возвращаем количество строк
            return tostring(#res) .. " строк(и) найдено."
        else
            return "Таблица возвращена, но пустая."
        end
     else
     else
         return "Ошибка: результат не является таблицей."
         return "Ошибка: результат не является таблицей."

Версия от 22:58, 12 сентября 2024

Для документации этого модуля может быть создана страница Модуль:ICCup entity count/doc

local Arguments = require('Module:Arguments')

local EntityCounter = {}

function EntityCounter.count(frame)
    return EntityCounter._count(Arguments.getArgs(frame))
end

function EntityCounter._count(args)
    local tableName = args.table or "Heroes"  -- Таблица Cargo
    local queryFields = args.fields or "*"    -- Укажите, какие поля нужно запросить, по умолчанию - все поля
    local conditions = args.conditions or ""  -- Условия запроса

    mw.log("Таблица: " .. tableName)
    mw.log("Поля: " .. queryFields)
    mw.log("Условия: " .. conditions)

    -- Выполняем запрос через cargo.query
    local res = mw.ext.cargo.query(
        tableName,      -- Имя таблицы
        queryFields,    -- Поля для выборки
        {
            where = conditions,  -- Условия запроса
            format = "table"     -- Формат должен быть "table", чтобы возвращать таблицу
        }
    )

    -- Проверяем результат
    mw.logObject(res)  -- выводим структуру результата в консоль для отладки

    if type(res) == 'table' then
        -- Если таблица возвращена, пробуем вывести данные
        if #res > 0 then
            -- Если результат непустой, возвращаем количество строк
            return tostring(#res) .. " строк(и) найдено."
        else
            return "Таблица возвращена, но пустая."
        end
    else
        return "Ошибка: результат не является таблицей."
    end
end

return EntityCounter