誰かが私が探しているこのページネーションを設定するための良い場所や良いチュートリアルを知っていますか?
私がここに何百行も投稿していることに腹を立てる前に、私が達成したいこと、私の状況をよりよく説明するために使用するコードについて簡単に説明しましょう。
以下のコードは、ページ付けのみまたは検索のみを行う場合に機能します
。1.メインページに入ると、ページ付けが機能します。1ページ目、2ページ目などを押すと、期待どおりの結果が得られます。
2.検索を使用すると機能しますが、これにより1ページに制限なくすべてのレコードが表示されます。制限を設定することはできますが、ページネーションは機能しません。
検索変数を取得してページネーションに追加する方法がわかりません。
次のようなURLを持つことは可能ですか:search = Hello + World?orderby = custforename + custsurname?page = 3..私はそうだと思います...このようなものはどうですか?と呼ばれる?高度なページ付けチュートリアルに適した場所を知っている人はいますか?
私はメインページでこのコードを使用しています:
<?php
if(isset($_POST['search']))
{
$search = $_POST['search'];
$search = ltrim($search, " ");
$terms = explode(" ", $search);
$customerlistquery = "
SELECT *
FROM customer
LEFT JOIN company
ON customer.compid=company.compid
WHERE
";
$i = 0;
foreach ($terms as $each)
{
if ($i++ > 0)
$customerlistquery .= ' OR ';
$customerlistquery .= "concat(custsurname, custforename, custmidname, custpostal, custphone1, custphone2, custfax, custnamecode, datemodified, modifiedby) LIKE '%$each%' ";
}
$customerlistquery .= " ORDER BY $orderby ASC";
}
else
{
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$startpoint = ($page * $limit) - $limit;
$customerlistquery = "
SELECT *
FROM customer
LEFT JOIN company
ON customer.compid=company.compid
ORDER BY $orderby ASC
LIMIT {$startpoint}, {$limit}
";
echo pagination("customer
LEFT JOIN company
ON customer.compid=company.compid
ORDER BY $orderby ASC",$limit,$page);
}
?>
$result=mysql_query($itemslistquery) or die("query fout " . mysql_error() );
そして最後にpagination.phpコード:
<?php
function pagination($query, $per_page = 10,$page = 1, $url = '?'){
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysql_fetch_array(mysql_query($query));
$total = $row['num'];
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<ul class='pagination'>";
$pagination .= "<li class='details'>Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
}else{
$pagination.= "<li><a class='current'>Next</a></li>";
$pagination.= "<li><a class='current'>Last</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
?>