Дополнительные действия
DarkMuse (обсуждение | вклад) Нет описания правки |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 33: | Строка 33: | ||
-- Проверяем результат и возвращаем количество записей | -- Проверяем результат и возвращаем количество записей | ||
return res | if res and type(res) == 'string' then | ||
return res -- В случае формата count возвращается строка, которая является числом записей | |||
else | |||
error("Ошибка при выполнении запроса: " .. tostring(res)) | |||
end | |||
end | end | ||
return EntityCounter | return EntityCounter | ||
Версия от 22:44, 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 "" -- Условия запроса
-- Проверяем наличие условий и формируем строку запроса
if conditions == "" then
error("Условия не заданы.")
end
mw.log("Таблица: " .. tableName)
mw.log("Поля: " .. queryFields)
mw.log("Условия: " .. conditions)
-- Выполняем запрос через cargo.query
local res = mw.ext.cargo.query(
tableName, -- Имя таблицы
queryFields, -- Поля для выборки
{
where = conditions, -- Условия запроса
limit = 1, -- Ограничиваем до одной записи
format = "count" -- Формат запроса
}
)
-- Проверяем результат и возвращаем количество записей
if res and type(res) == 'string' then
return res -- В случае формата count возвращается строка, которая является числом записей
else
error("Ошибка при выполнении запроса: " .. tostring(res))
end
end
return EntityCounter