Не поленился, и всё же открыл свой git сервер, что бы найти код этого безумия
php код серверной части:
function giveItemsListBysearchKeyWord()
{ //функция поиска в списке предметов по ключевому слову. Дальнейшая расфосовка результата по страницам и отдача готового результата клиенту
include 'connectTodb.php';
$ItemsListForClient;
$giveItemsListToClientArray = null;
$getJsonDataFromClient = json_decode($_GET['jsonData'], true);
//var_dump($jsonDataFromClientsDBitems);
$searchKeyWord = strval($getJsonDataFromClient['dataFromClient']); //ключевое слово, для поиска по базе данных.
$selectItemsListBysearchKeyWord = $mysqli->query("SELECT itemLabel, itemDamage, itemName, itemUUID, itemPriceCoins, itemmaxSize, canCraft, itemOnSaleStatus
FROM items_market WHERE itemOnSaleStatus = 1 and itemLabel like '%$searchKeyWord%'");
foreach ($selectItemsListBysearchKeyWord as $key => $value) { //Поиск совпадения по ключевому слову из GET запроса, и забивка в новую таблицу, что бы в дальнейшем побить это всё на страницы и строки.
if (!empty($value)) {
//var_dump($row);
$ItemsListForClient[] = array(
"itemUUID" => $value['itemUUID'],
"itemDamage" => $value['itemDamage'],
"itemName" => $value['itemName'],
"itemLabel" => $value['itemLabel'],
"itemmaxSize" => $value['itemmaxSize'],
"canCraft" => $value['canCraft'],
"itemPriceCoins" => $value['itemPriceCoins']
);
//var_dump($ItemsListForClyient);
}
}
if (!empty($ItemsListForClient)) {
$countallItems = count($ItemsListForClient); //выяснение сколько в общем элементов в массиве allItems и запись этого результата в переменную
$countPage = ceil($countallItems / 15); // деление на количество элементов в массие, строк на странице будет 16
$ArrayWalkStart = 0;
$ArrayWalkEnd = 15;
for ($z = 1; $z <= $countPage; $z++) {
//echo "Z:".$z." ";
//giveItemsListToClientArray[] = $z;
$giveItemsListToClientArray[] = splittItemsListIntoPages($ArrayWalkStart, $ArrayWalkEnd, $ItemsListForClient);
$ArrayWalkStart = $ArrayWalkStart + 15;
$ArrayWalkEnd = $ArrayWalkEnd + 15;
}
echo json_encode($giveItemsListToClientArray);
//var_dump($giveItemsListToClientArray);
} else {
echo json_encode("searchReturnEmpty"); //это если ни чего не найдено
}
}
Библа что использовалась на стороне клиента для кодирования и декодирования запрос-ответа. https://github.com/rxi/json.lua/blob/master/json.lua
Код на стороне клиента. Да тут кусок, но суть думаю будет ясна. То есть, написал в строке поиска слово, нажал enter, запрос улетел на сервер в json формате, потом принимаю ответ и декодируя json строку, если не пусто, то рисую таблицу с результатом на экран.
if signal[1] ~= "key_down" and signal[1] == "key_up" and specChar == 28 then --28 это номер клавиши enter
local response = getRequest(whereSearchMethod,searchSaveTypeInputText)
if response then
if response == "searchReturnEmpty" then
pageNum = 1
searchReturnEmpty_KeyTouchToRow = 0
whichTableToUseSwitch = searchReturnEmptyTable --Бьём пустой список предметов.
tableToUse = whichtableToUse()
eventDrawTablePageAndClickRow(pageNum, tableToUse, nil, 1, "itemLabel","itemPriceCoins") --вызов отрисовки страницы
fill(2,5,78,18, " ", 0x303030) -- цвет фона в itemlist
set(nil, 12, "Хм, странно, но похоже что ни чего не найдено...", 0x303030, 0xffc107)
set(nil, 14, "Попробуй поискать что-нибудь другое!", 0x303030, 0xffc107)
else
pageNum = 1
searchReturnEmpty_KeyTouchToRow = 1
searchOnServerInItemsList = response
whichTableToUseSwitch = searchOnServerInItemsList
tableToUse = whichtableToUse()
eventDrawTablePageAndClickRow(pageNum, tableToUse, nil, 1, "itemLabel","itemPriceCoins") --вызов отрисовки страницы
end
else
FormOutOfService("Ошибка поиска, сервер не доступен!")
end
end