Непонятно, что именно вы пытаетесь сделать, и мало контекста для того, что делает код. Можете ли вы подробнее рассказать о том, что вы пытаетесь сделать? Например, откуда вы получаете id
? Как должен выглядеть tempkey?
Вы также используете таблицу в качестве аргумента для этого MySQL запроса, что я не считаю правильным. Я предполагаю, что этот запрос вернет только один результат?
Предполагаю, что perm
должно быть строкой чисел («69 360»). Если это так, вы должны объединить их в строку, подобную этой.
tempkey = ""
exports['ghmattimysql']:execute('SELECT * FROM user_properties WHERE house = @house AND number = @number', {['@house'] = house, ['@number'] = number}, function(rows)
for k,v in pairs(rows) do
if tonumber(v.perm) ~= nil then
if tonumber(v.perm) < 0 then
tempkey = v.perm .. " " .. id
else
tempkey = id
end
end
end
exports['ghmattimysql']:execute('UPDATE user_properties SET perm = @perm WHERE house = @house AND number = @number', {
['@house'] = house,
['@number'] = number,
['@perm'] = tempkey
})
end)
Кроме того, если этот запрос предназначен только для возврата одного результата, вы можете сделать что-то подобное, чтобы избежать ненужного итерация по таблице rows
tempkey = ""
exports['ghmattimysql']:execute('SELECT * FROM user_properties WHERE house = @house AND number = @number', {['@house'] = house, ['@number'] = number}, function(rows)
local data = rows[1]
if tonumber(data.perm) ~= nil then
if tonumber(data.perm) < 0 then
tempkey = data.perm .. " " .. id
else
tempkey = id
end
end
exports['ghmattimysql']:execute('UPDATE user_properties SET perm = @perm WHERE house = @house AND number = @number', {
['@house'] = house,
['@number'] = number,
['@perm'] = tempkey
})
end)
Здесь он сохраняется с пробелом, но вы можете использовать запятую или что угодно. JSON, вероятно, слишком тяжелый для этой цели.