Дополнительные действия
DarkMuse (обсуждение | вклад) Нет описания правки Метка: ручная отмена |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 9: | Строка 9: | ||
function EntityCounter._count(args) | function EntityCounter._count(args) | ||
local tableName = args.table or "Heroes" -- Таблица Cargo | local tableName = args.table or "Heroes" -- Таблица Cargo | ||
local queryFields = args.fields or "*" -- | local queryFields = args.fields or "*" -- Поля, которые нужно запросить | ||
local conditions = args.conditions or "" -- Условия запроса | local conditions = args.conditions or "" -- Условия запроса | ||
-- Если в условиях есть строки, нужно обернуть их в одинарные кавычки | |||
-- Проверим наличие строки "type='hero'" | |||
if conditions:match("type=hero") then | |||
conditions = conditions:gsub("type=hero", "type='hero'") | |||
end | |||
mw.log("Таблица: " .. tableName) | mw.log("Таблица: " .. tableName) | ||
| Строка 22: | Строка 28: | ||
{ | { | ||
where = conditions, -- Условия запроса | where = conditions, -- Условия запроса | ||
format = "table" | format = "table", -- Возвращаем результат в виде таблицы | ||
limit = 100 -- Лимит на количество строк | |||
} | } | ||
) | ) | ||
-- Проверяем результат | -- Проверяем результат | ||
mw.logObject(res) -- выводим структуру результата | mw.logObject(res) -- выводим структуру результата для отладки | ||
if type(res) == 'table' then | if type(res) == 'table' then | ||
if #res > 0 then | if #res > 0 then | ||
-- Если результат непустой, | -- Если результат непустой, выводим количество строк | ||
return tostring(#res) .. " строк(и) найдено." | return tostring(#res) .. " строк(и) найдено." | ||
else | else | ||
Версия от 23:01, 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 "" -- Условия запроса
-- Если в условиях есть строки, нужно обернуть их в одинарные кавычки
-- Проверим наличие строки "type='hero'"
if conditions:match("type=hero") then
conditions = conditions:gsub("type=hero", "type='hero'")
end
mw.log("Таблица: " .. tableName)
mw.log("Поля: " .. queryFields)
mw.log("Условия: " .. conditions)
-- Выполняем запрос через cargo.query
local res = mw.ext.cargo.query(
tableName, -- Имя таблицы
queryFields, -- Поля для выборки
{
where = conditions, -- Условия запроса
format = "table", -- Возвращаем результат в виде таблицы
limit = 100 -- Лимит на количество строк
}
)
-- Проверяем результат
mw.logObject(res) -- выводим структуру результата для отладки
if type(res) == 'table' then
if #res > 0 then
-- Если результат непустой, выводим количество строк
return tostring(#res) .. " строк(и) найдено."
else
return "Таблица возвращена, но пустая."
end
else
return "Ошибка: результат не является таблицей."
end
end
return EntityCounter