Считайте, что у нас есть база данных с множеством данных о людях. Я хочу отфильтровать этот результат по имеющимся данным. если структура таблицы следующая:
![database sample](https://i.stack.imgur.com/jhfpt.png)
Как отображать результаты только от пользователя со страной «Индия». Это будет возможно при доступе к атрибутам объекта, но я хочу добавить эту функцию в следующий сценарий. Я не эксперт, и мне кажется, что этот сценарий настолько сложен для понимания.
Разбиение на страницы. php
<?php
namespace Phppot;
use Phppot\DataSource;
class Pagination
{
private $ds;
function __construct()
{
require_once __DIR__ . './../lib/DataSource.php';
$this->ds = new DataSource();
}
public function getPage()
{
// adding limits to select query
require_once __DIR__ . './../Common/Config.php';
$limit = Config::LIMIT_PER_PAGE;
// Look for a GET variable page if not found default is 1.
if (isset($_GET["page"])) {
$pn = $_GET["page"];
} else {
$pn = 1;
}
$startFrom = ($pn - 1) * $limit;
$query = 'SELECT * FROM tbl_animal LIMIT ? , ?';
$paramType = 'ii';
$paramValue = array(
$startFrom,
$limit
);
$result = $this->ds->select($query, $paramType, $paramValue);
return $result;
}
public function getAllRecords()
{
$query = 'SELECT * FROM tbl_animal';
$totalRecords = $this->ds->getRecordCount($query);
return $totalRecords;
}
}
?>
Я просто хочу отфильтровать результат. Полная ссылка на скрипт https://phppot.com/php/how-to-add-pagination-in-php-with-mysql/ Если возможно, добавьте возможность фильтрации результата по имени животного (обычное имя), например «Лев».
Обновление, вот рабочий код
<?php
namespace Phppot;
use Phppot\DataSource;
class Pagination
{
private $ds;
function __construct()
{
require_once __DIR__ . './../lib/DataSource.php';
$this->ds = new DataSource();
}
public function getPage()
{
// adding limits to select query
require_once __DIR__ . './../Common/Config.php';
$limit = Config::LIMIT_PER_PAGE;
// Look for a GET variable page if not found default is 1.
if (isset($_GET["page"])) {
$pn = $_GET["page"];
} else {
$pn = 1;
}
$startFrom = ($pn - 1) * $limit;
$query = 'SELECT * FROM tbl_animal WHERE common_name=Lion LIMIT ? , ?';
$paramType = 'ii';
$paramValue = array(
$startFrom,
$limit
);
$result = $this->ds->select($query, $paramType, $paramValue);
return $result;
}
public function getAllRecords()
{
$query = 'SELECT * FROM tbl_animal WHERE common_name=Lion';
$totalRecords = $this->ds->getRecordCount($query);
return $totalRecords;
}
}
?>