id; } //initial checks if (!$limit || !$page) { http_response_code(400); } if ($page < 1 || $limit < 1) { http_response_code(400); } //queries if ($category == "FreeModels") { $query = "SELECT * FROM assets WHERE AssetTypeId = 10 AND name LIKE :u AND isPublicDomain = 1 ORDER BY created DESC"; } else if ($category == "UserModels") { $query = "SELECT * FROM assets WHERE AssetTypeId = 10 AND name LIKE :u AND CreatorId = ".$creatorid." ORDER BY created DESC"; } else { http_response_code(400); } //count how many shouts without offset/limit $itemcount = $pdo->prepare($query); $itemcount->bindParam(':u', $keywordq, PDO::PARAM_STR); $itemcount->execute(); $itemcount = $itemcount->rowCount(); //data for pages $total = $itemcount; $pages = ceil($total / $limit); $offset = ($page - 1) * $limit; // Prepare the paged query $items = $pdo->prepare($query . ' LIMIT :limit OFFSET :offset'); $items->bindParam(':u', $keywordq, PDO::PARAM_STR); $items->bindParam(':limit', $limit, PDO::PARAM_INT); $items->bindParam(':offset', $offset, PDO::PARAM_INT); $items->execute(); $jsonData = array( "pageCount" => $pages, "pageResults" => (int)$items->rowCount() ); foreach($items as $item) { $itemAssetId = $item['id']; $itemInfo = getAssetInfo($itemAssetId); $name = cleanOutput($itemInfo->Name); $creatorid = $itemInfo->CreatorId; $creator = getUsername($creatorid); $render = getAssetRender($itemAssetId); $items = array( "id" => $itemAssetId, "name" => $name, "creatorId" => $creatorid, "creator" => $creator, "thumbnail" => $render ); array_push($jsonData, $items); } // ... die(json_encode($jsonData));