Я пытаюсь написать плагин, который ищет таблицу SQL на основе ввода, предоставленного через форму. Мой код ...WordPress с пользовательским запросом
global $table_name_log;
$pagenum = isset($_GET['pagenum']) ? absint($_GET['pagenum']) : 1;
$limit = 25;
$offset = ($pagenum - 1) * $limit;
$l_task=isset($_POST['l_task']) ? $_POST['l_task'] : "a";
$l_val=$_POST['l_val']; if($l_val=="") { $l_task="a"; }
if($l_task=="d")
{
$criteria="where log.Doc_Number='{$l_val}'";
}
elseif($l_task=="e")
{
$criteria="where log.Employee='{$l_val}'";
}
else
{
$criteria="";
}
$SQLQuery="SELECT em.ID, log.Date, em.Payroll, log.Doc_Number, doc.Doc_Name, doc.Replaced_By, log.Trainer, log.Log, log.Type
FROM {$table_name_log} log
join {$table_name_employee} em on log.Employee=em.ID
join {$table_name_documents} doc on log.Doc_Number=doc.Doc_Number
{$criteria}
order by log.Employee asc
";
//Get total number of results
$results=$wpdb->get_results("{$SQLQuery}",ARRAY_A);
$search_total = $wpdb->num_rows;
//Limit results by page
$results=$wpdb->get_results("{$SQLQuery} LIMIT {$offset}, {$limit}",ARRAY_A);
if(! $results)
{
if($pagenum>1)
{
$pagenum=1;
$results=$wpdb->get_results("{$SQLQuery} LIMIT 0, {$limit}",ARRAY_A);
}
}
Затем я показываю результаты запроса. В нижней части отображаемых результатов у меня есть этот код ...
$total=$search_total;
$num_of_pages = ceil($total/$limit);
$page_links = paginate_links(array(
'base' => add_query_arg('pagenum', '%#%'),
'format' => '',
'prev_text' => __('«', 'aag'),
'next_text' => __('»', 'aag'),
'total' => $num_of_pages,
'current' => $pagenum
));
if ($page_links) {
echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
}
Проблема заключается в том, что, хотя количество страниц подсчитывается правильно и страница 1 показывает правильные результаты; при выборе другой страницы он отображает результаты без $criteria
, установленных $l_task
. Как отредактировать код, чтобы ссылки на страницы отображали правильный запрос для использования для дополнительных страниц?