2014-09-28 2 views
0

Хорошо, что теперь я сделал разбивку на страницы, когда он используется, он отлично отображает данные, но при нажатии на страницу 2 для следующих 5 результатов он показывает пустое значение, и URL-адрес также изменяется, то есть , когда сначала просматривается URL-адрес найденного результат страницыPagination не работает после страницы 1?

http://myurl.com/search.php?find=sa & catname = All + Бизнес + Тип

и когда страница 2 нажата она показывает пустой с URL

HTTP : //myurl.com/search.php? page = 2

Что я могу сделать, чтобы исправить это?

$find = $_GET['find']; 
$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim ($find); 
$allcatmain=$_GET['catname']; 


//Now we search for our search term, in the field the user specified 

$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]); 
if ($page <= 0) $page = 1; 

$per_page = 5; // Set how many records do you want to display per page. 

$startpoint = ($page * $per_page) - $per_page; 

$statement = "information 
    WHERE (title LIKE '%".$find."%' AND catname IN $allcat) OR (address LIKE '%".$find."%' AND  catname IN $allcat) ORDER BY id DESC"; 


    $results ="SELECT * FROM ".$statement." LIMIT ".$startpoint.",".$per_page.""; 
    $data=mysql_query($results); 


    //And we display the results 
    while($result = mysql_fetch_array($data)) 
      { 
    $link=$result['web']; 
    echo $result['title']; 
    echo $result['address']; 

    } 
    // displaying paginaiton. 
    echo pagination($statement,$per_page,$page); 

Функция пагинация

  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"; 

$prevlabel = "&lsaquo; Prev"; 
$nextlabel = "Next &rsaquo;"; 

$page = ($page == 0 ? 1 : $page); 
$start = ($page - 1) * $per_page;        

$prev = $page - 1;       
$next = $page + 1; 

$lastpage = ceil($total/$per_page); 

$lpm1 = $lastpage - 1; // //last page minus 1 

$pagination = ""; 
if($lastpage > 1){ 
    $pagination .= "<ul class='pagination'>"; 


     if ($page > 1) $pagination.= "<li><a href='{$url}page={$prev}'>{$prevlabel}</a></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}'>{$nextlabel}</a></li>"; 

    $pagination.= "</ul>";  
} 

return $pagination; 
    } 
    ?> 
+0

Показать функцию постраничной. – Gervs

+0

добавили функцию, см. Редактирование –

ответ

0

Вам нужно пройти (часть) существующей строки запроса $ URL:

$url = '?'; 
foreach ($_GET as $key => $value) { 
    if ($key != 'page') { 
     $url .= $key . '=' . $value . '&'; 
    } 
} 
// displaying paginaiton. 
echo pagination($statement,$per_page,$page, $url);