我正在尝试编写一个基于通过表单提供的输入搜索SQL表的插件。我的代码是......
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
。如何编辑代码以便分页链接提供正确的查询以用于其他页面?
答案 0 :(得分:0)
现在通过在顶部添加这个...
'add_args' => array( 'l_task' => $_POST['l_task'], 'l_val' => $_POST['l_val'] )
然后我添加了这个...
$page_links = paginate_links( array(
'base' => add_query_arg( 'pagenum', '%#%' ),
'format' => '',
'prev_text' => __( '«', 'aag' ),
'next_text' => __( '»', 'aag' ),
'total' => $num_of_pages,
'current' => $pagenum,
'add_args' => array( 'l_task' => $_POST['l_task'], 'l_val' => $_POST['l_val'] )
) );
为...
sum